mirror of https://github.com/rust-lang/rust
22 lines
349 B
Rust
22 lines
349 B
Rust
//@ 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() {}
|