Rollup merge of #68070 - GuillaumeGomez:clean-up-e0185, r=Dylan-DPC

clean up E0185 explanation

r? @Dylan-DPC
This commit is contained in:
Mazdak Farrokhzad 2020-01-11 12:36:10 +01:00 committed by GitHub
commit 34231d6c0b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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 implementation of the trait declared the same function to be a method (i.e., to
take a `self` parameter). take a `self` parameter).
Here's an example of this error: Erroneous code example:
```compile_fail,E0185 ```compile_fail,E0185
trait Foo { trait Foo {
@ -17,3 +17,19 @@ impl Foo for Bar {
fn foo(&self) {} 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!
}
```