mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-01 15:01:51 +00:00
Rollup merge of #68070 - GuillaumeGomez:clean-up-e0185, r=Dylan-DPC
clean up E0185 explanation r? @Dylan-DPC
This commit is contained in:
commit
34231d6c0b
@ -2,7 +2,7 @@ An associated function for a trait was defined to be static, but an
|
||||
implementation of the trait declared the same function to be a method (i.e., to
|
||||
take a `self` parameter).
|
||||
|
||||
Here's an example of this error:
|
||||
Erroneous code example:
|
||||
|
||||
```compile_fail,E0185
|
||||
trait Foo {
|
||||
@ -17,3 +17,19 @@ impl Foo for Bar {
|
||||
fn foo(&self) {}
|
||||
}
|
||||
```
|
||||
|
||||
When a type implements a trait's associated function, it has to use the same
|
||||
signature. So in this case, since `Foo::foo` does not take any argument and
|
||||
does not return anything, its implementation on `Bar` should be the same:
|
||||
|
||||
```
|
||||
trait Foo {
|
||||
fn foo();
|
||||
}
|
||||
|
||||
struct Bar;
|
||||
|
||||
impl Foo for Bar {
|
||||
fn foo() {} // ok!
|
||||
}
|
||||
```
|
||||
|
Loading…
Reference in New Issue
Block a user