| trait FooTrait<T>: Sized { | |
| type Bar: BarTrait<T>; | |
| } | |
| trait BarTrait<T>: Sized { | |
| type Baz; | |
| fn foo(); | |
| } | |
| type Foo<T: FooTrait> = <<T as FooTrait<U>>::Bar as BarTrait<U>>::Baz; | |
| type Bar<T: BarTrait> = <T as BarTrait<U>>::Baz; | |
| fn some_func<T: FooTrait<U>, U>() { | |
| <<T as FooTrait<U>>::Bar as BarTrait<U>>::foo(); | |
| } | |
| fn some_func<T: BarTrait<U>>() { | |
| <T as BarTrait<U>>::foo(); | |
| } |