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()19 fn main() {
20     let _: <() as Tr>::Assoc = ();
21     let _: <() as Tr>::Assoc2 = ();
22 }
23