36 lines
701 B
Rust
36 lines
701 B
Rust
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
|
|
}
|