File tree Expand file tree Collapse file tree 1 file changed +17
-1
lines changed
src/librustc_error_codes/error_codes Expand file tree Collapse file tree 1 file changed +17
-1
lines changed Original file line number Diff line number Diff line change @@ -2,7 +2,7 @@ An associated function for a trait was defined to be a method (i.e., to take a
22` self ` parameter), but an implementation of the trait declared the same function
33to be static.
44
5- Here's an example of this error :
5+ Erroneous code example:
66
77``` compile_fail,E0186
88trait Foo {
@@ -17,3 +17,19 @@ impl Foo for Bar {
1717 fn foo() {}
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 ` takes ` self ` as argument and
23+ does not return anything, its implementation on ` Bar ` should be the same:
24+
25+ ```
26+ trait Foo {
27+ fn foo(&self);
28+ }
29+
30+ struct Bar;
31+
32+ impl Foo for Bar {
33+ fn foo(&self) {} // ok!
34+ }
35+ ```
You can’t perform that action at this time.
0 commit comments