about summary refs log tree commit diff
path: root/src/librustc_error_codes/error_codes
diff options
context:
space:
mode:
authorYuki Okushi <huyuumi.dev@gmail.com>2020-01-13 16:44:23 +0900
committerGitHub <noreply@github.com>2020-01-13 16:44:23 +0900
commit574ef55ea73ba1bb2848b54e5ff18a912accc719 (patch)
treedcc917ab9d2a7ef0efcf2290dcdbcf1c29367372 /src/librustc_error_codes/error_codes
parent0c25ab051c4fda5fa235b64de7e9b91acd5ed191 (diff)
parent34186ef642f1c48e6a27693ad16a3e0fcfd0fddc (diff)
downloadrust-574ef55ea73ba1bb2848b54e5ff18a912accc719.tar.gz
rust-574ef55ea73ba1bb2848b54e5ff18a912accc719.zip
Rollup merge of #68157 - GuillaumeGomez:clean-up-e0186, r=Dylan-DPC
Clean up E0186 explanation

r? @Dylan-DPC
Diffstat (limited to 'src/librustc_error_codes/error_codes')
-rw-r--r--src/librustc_error_codes/error_codes/E0186.md18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/librustc_error_codes/error_codes/E0186.md b/src/librustc_error_codes/error_codes/E0186.md
index 9135d5c1d5e..7db1e843323 100644
--- a/src/librustc_error_codes/error_codes/E0186.md
+++ b/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!
+}
+```