| use std::convert::TryInto; | |
| trait A<T> { | |
| fn foo() {} | |
| } | |
| trait B<T, U> { | |
| fn bar() {} | |
| } | |
| struct S; | |
| impl<T> A<T> for S {} | |
| impl<T, U> B<T, U> for S {} | |
| fn main() { | |
| let _ = A::foo::<S>(); | |
| //~^ ERROR | |
| //~| HELP remove the unnecessary generics | |
| //~| HELP consider moving this generic argument | |
| let _ = B::bar::<S, S>(); | |
| //~^ ERROR | |
| //~| HELP remove the unnecessary generics | |
| //~| HELP consider moving these generic arguments | |
| let _ = A::<S>::foo::<S>(); | |
| //~^ ERROR | |
| //~| HELP remove the unnecessary generics | |
| let _ = 42.into::<Option<_>>(); | |
| //~^ ERROR | |
| //~| HELP remove the unnecessary generics | |
| //~| HELP consider moving this generic argument | |
| } |