| 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 |
| } |