Skip to content

Commit

Permalink
Rollup merge of #68157 - GuillaumeGomez:clean-up-e0186, r=Dylan-DPC
Browse files Browse the repository at this point in the history
Clean up E0186 explanation

r? @Dylan-DPC
  • Loading branch information
JohnTitor authored Jan 13, 2020
2 parents 0c25ab0 + 34186ef commit 574ef55
Showing 1 changed file with 17 additions and 1 deletion.
18 changes: 17 additions & 1 deletion src/librustc_error_codes/error_codes/E0186.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ An associated function for a trait was defined to be a method (i.e., to take a
`self` parameter), but an implementation of the trait declared the same function
to be static.

Here's an example of this error:
Erroneous code example:

```compile_fail,E0186
trait Foo {
Expand All @@ -17,3 +17,19 @@ impl Foo for Bar {
fn foo() {}
}
```

When a type implements a trait's associated function, it has to use the same
signature. So in this case, since `Foo::foo` takes `self` as argument and
does not return anything, its implementation on `Bar` should be the same:

```
trait Foo {
fn foo(&self);
}
struct Bar;
impl Foo for Bar {
fn foo(&self) {} // ok!
}
```

0 comments on commit 574ef55

Please sign in to comment.