Closed
Description
This code
trait Foo {
fn foo(&mut self, x: i32, y: i32) -> i32;
}
impl Foo for i32 {
fn foo(
&mut self,
x: i32
) {
}
}
error[E0050]: method `foo` has 2 parameters but the declaration in trait `Foo::foo` has 3
--> src/lib.rs:8:12
|
2 | fn foo(&mut self, x: i32, y: i32) -> i32;
| --- trait requires 3 parameters
...
8 | x: i32
| ^^^ expected 3 parameters, found 2
error: aborting due to previous error
It is rather odd that it points at the type of the last parameter. In particular when there is just one parameter per line, this span is not helpful.
The span should probably encompass all parameters.