Skip to content
Permalink
Browse files

Clean up E0186 explanation

  • Loading branch information
GuillaumeGomez committed Jan 12, 2020
1 parent ee84c30 commit 34186ef642f1c48e6a27693ad16a3e0fcfd0fddc
Showing with 17 additions and 1 deletion.
  1. +17 −1 src/librustc_error_codes/error_codes/E0186.md
@@ -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 {
@@ -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 34186ef

Please sign in to comment.
You can’t perform that action at this time.