diff --git a/src/librustc_error_codes/error_codes/E0307.md b/src/librustc_error_codes/error_codes/E0307.md index c628d176836f9..52707b93acc86 100644 --- a/src/librustc_error_codes/error_codes/E0307.md +++ b/src/librustc_error_codes/error_codes/E0307.md @@ -1,5 +1,19 @@ -This error indicates that the `self` parameter in a method has an invalid -"receiver type". +The `self` parameter in a method has an invalid "receiver type". + +Erroneous code example: + +```compile_fail,E0307 +struct Foo; +struct Bar; + +trait Trait { + fn foo(&self); +} + +impl Trait for Foo { + fn foo(self: &Bar) {} +} +``` Methods take a special first parameter, of which there are three variants: `self`, `&self`, and `&mut self`. These are syntactic sugar for @@ -36,7 +50,7 @@ impl Trait for Foo { } ``` -E0307 will be emitted by the compiler when using an invalid receiver type, +This error will be emitted by the compiler when using an invalid receiver type, like in the following example: ```compile_fail,E0307