| // | |
| // Before the introduction of the "duplicate associated type" error, the | |
| // program below used to result in the "ambiguous associated type" error E0223, | |
| // which is unexpected. | |
| trait Foo { | |
| type Bar; | |
| } | |
| struct Baz; | |
| impl Foo for Baz { | |
| type Bar = i16; | |
| type Bar = u16; //~ ERROR duplicate definitions | |
| } | |
| fn main() { | |
| let x: Baz::Bar = 5; | |
| //~^ ERROR ambiguous associated type | |
| } |