1 // check-pass 2 3 // Before RFC 2532, overriding one assoc. type default required overriding all 4 // provided defaults. 5 6 #![feature(associated_type_defaults)] 7 8 pub trait Tr { 9 type Assoc = u8; 10 type Assoc2 = Self::Assoc; 11 const C: u8 = 11; foo(&self)12 fn foo(&self) {} 13 } 14 15 impl Tr for () { 16 type Assoc = (); 17 } 18 main()19fn main() { 20 let _: <() as Tr>::Assoc = (); 21 let _: <() as Tr>::Assoc2 = (); 22 } 23