Skip to content

Commit

Permalink
Fix the error explanation for E0053.
Browse files Browse the repository at this point in the history
  • Loading branch information
Nick Hamann committed May 19, 2015
1 parent d50fa7e commit 35d979d
Showing 1 changed file with 11 additions and 24 deletions.
35 changes: 11 additions & 24 deletions src/librustc_typeck/diagnostics.rs
Expand Up @@ -65,40 +65,27 @@ impl Foo for Bar {
"##,

E0053: r##"
For any given method of a trait, the mutabilities of the parameters must match
between the trait definition and the implementation.
The parameters of any trait method must match between a trait implementation
and the trait definition.
Here's an example where the mutability of the `self` parameter is wrong:
Here are a couple examples of this error:
```
trait Foo { fn foo(&self); }
struct Bar;
impl Foo for Bar {
// error, the signature should be `fn foo(&self)` instead
fn foo(&mut self) { }
trait Foo {
fn foo(x: u16);
fn bar(&self);
}
fn main() {}
```
Here's another example, this time for a non-`self` parameter:
```
trait Foo { fn foo(x: &mut bool) -> bool; }
struct Bar;
impl Foo for Bar {
// error, the type of `x` should be `&mut bool` instead
fn foo(x: &bool) -> bool { *x }
}
// error, expected u16, found i16
fn foo(x: i16) { }
fn main() {}
// error, values differ in mutability
fn foo(&mut self) { }
}
```
"##,

E0054: r##"
Expand Down

0 comments on commit 35d979d

Please sign in to comment.