| // Check that we get an error in a multidisptach scenario where the | |
| // set of impls is ambiguous. | |
| trait Convert<Target> { | |
| fn convert(&self) -> Target; | |
| } | |
| impl Convert<i8> for i32 { | |
| fn convert(&self) -> i8 { | |
| *self as i8 | |
| } | |
| } | |
| impl Convert<i16> for i32 { | |
| fn convert(&self) -> i16 { | |
| *self as i16 | |
| } | |
| } | |
| fn test<T,U>(_: T, _: U) | |
| where T : Convert<U> | |
| { | |
| } | |
| fn a() { | |
| test(22, std::default::Default::default()); | |
| //~^ ERROR type annotations needed | |
| } | |
| fn main() {} |