Skip to content

Commit 35d979d

Browse files
author
Nick Hamann
committed
Fix the error explanation for E0053.
1 parent d50fa7e commit 35d979d

File tree

1 file changed

+11
-24
lines changed

1 file changed

+11
-24
lines changed

src/librustc_typeck/diagnostics.rs

Lines changed: 11 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -65,40 +65,27 @@ impl Foo for Bar {
6565
"##,
6666

6767
E0053: r##"
68-
For any given method of a trait, the mutabilities of the parameters must match
69-
between the trait definition and the implementation.
68+
The parameters of any trait method must match between a trait implementation
69+
and the trait definition.
7070
71-
Here's an example where the mutability of the `self` parameter is wrong:
71+
Here are a couple examples of this error:
7272
7373
```
74-
trait Foo { fn foo(&self); }
75-
76-
struct Bar;
77-
78-
impl Foo for Bar {
79-
// error, the signature should be `fn foo(&self)` instead
80-
fn foo(&mut self) { }
74+
trait Foo {
75+
fn foo(x: u16);
76+
fn bar(&self);
8177
}
8278
83-
fn main() {}
84-
```
85-
86-
Here's another example, this time for a non-`self` parameter:
87-
88-
```
89-
trait Foo { fn foo(x: &mut bool) -> bool; }
90-
9179
struct Bar;
9280
9381
impl Foo for Bar {
94-
// error, the type of `x` should be `&mut bool` instead
95-
fn foo(x: &bool) -> bool { *x }
96-
}
82+
// error, expected u16, found i16
83+
fn foo(x: i16) { }
9784
98-
fn main() {}
85+
// error, values differ in mutability
86+
fn foo(&mut self) { }
87+
}
9988
```
100-
101-
10289
"##,
10390

10491
E0054: r##"

0 commit comments

Comments
 (0)