blob: 014d15a87f17ca454fcaf91c04fdeebd0e9f8422 [file] [log] [blame] [edit]
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
}