| //@ check-pass | |
| // Before RFC 2532, overriding one assoc. type default required overriding all | |
| // provided defaults. | |
| #![feature(associated_type_defaults)] | |
| pub trait Tr { | |
| type Assoc = u8; | |
| type Assoc2 = Self::Assoc; | |
| const C: u8 = 11; | |
| fn foo(&self) {} | |
| } | |
| impl Tr for () { | |
| type Assoc = (); | |
| } | |
| fn main() { | |
| let _: <() as Tr>::Assoc = (); | |
| let _: <() as Tr>::Assoc2 = (); | |
| } |