| //@ known-bug: #91985 |
| |
| #![feature(generic_associated_types)] |
| |
| pub trait Trait1 { |
| type Associated: Ord; |
| } |
| |
| pub trait Trait2 { |
| type Associated: Clone; |
| } |
| |
| pub trait GatTrait { |
| type Gat<T: Clone>; |
| } |
| |
| pub struct GatStruct; |
| |
| impl GatTrait for GatStruct { |
| type Gat<T: Clone> = Box<T>; |
| } |
| |
| pub struct OuterStruct<T1: Trait1, T2: Trait2> { |
| inner: InnerStruct<T2, GatStruct>, |
| t1: T1, |
| } |
| |
| pub struct InnerStruct<T: Trait2, G: GatTrait> { |
| pub gat: G::Gat<T::Associated>, |
| } |
| |
| impl<T1, T2> OuterStruct<T1, T2> |
| where |
| T1: Trait1, |
| T2: Trait2<Associated = T1::Associated>, |
| { |
| pub fn new() -> Self { |
| todo!() |
| } |
| } |
| |
| pub fn main() {} |