| //@ check-pass | |
| trait Parent { | |
| type Ty; | |
| type Assoc: Child<Self::Ty>; | |
| } | |
| trait Child<T> {} | |
| struct ChildWrapper<T>(T); | |
| impl<A, T> Child<A> for ChildWrapper<T> where T: Child<A> {} | |
| struct ParentWrapper<T>(T); | |
| impl<A, T: Parent<Ty = A>> Parent for ParentWrapper<T> { | |
| type Ty = A; | |
| type Assoc = ChildWrapper<T::Assoc>; | |
| } | |
| fn main() {} |