Skip to content

Commit f79ba85

Browse files
clean up E0185 explanation
1 parent ee84c30 commit f79ba85

File tree

1 file changed

+17
-1
lines changed
  • src/librustc_error_codes/error_codes

1 file changed

+17
-1
lines changed

src/librustc_error_codes/error_codes/E0185.md

+17-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ An associated function for a trait was defined to be static, but an
22
implementation of the trait declared the same function to be a method (i.e., to
33
take a `self` parameter).
44

5-
Here's an example of this error:
5+
Erroneous code example:
66

77
```compile_fail,E0185
88
trait Foo {
@@ -17,3 +17,19 @@ impl Foo for Bar {
1717
fn foo(&self) {}
1818
}
1919
```
20+
21+
When a type implements a trait's associated function, it has to use the same
22+
signature. So in this case, since `Foo::foo` doesn't take argument and doesn't
23+
return anything, its implementation on `Bar` should the same:
24+
25+
```
26+
trait Foo {
27+
fn foo();
28+
}
29+
30+
struct Bar;
31+
32+
impl Foo for Bar {
33+
fn foo() {} // ok!
34+
}
35+
```

0 commit comments

Comments
 (0)