Skip to content

Commit 9581154

Browse files
Add E0407 error explanation
1 parent bc79f20 commit 9581154

File tree

1 file changed

+37
-4
lines changed

1 file changed

+37
-4
lines changed

src/librustc_resolve/diagnostics.rs

+37-4
Original file line numberDiff line numberDiff line change
@@ -317,8 +317,7 @@ impl Foo for Bar { // ok!
317317
"##,
318318

319319
E0405: r##"
320-
You tried to implement an undefined trait on an object. Example of
321-
erroneous code:
320+
A non-trait was implemented. Example of erroneous code:
322321
323322
```
324323
struct Foo;
@@ -344,7 +343,42 @@ impl SomeTrait for Foo { // ok!
344343
// implements functions
345344
}
346345
```
347-
"##
346+
"##,
347+
348+
E0407: r##"
349+
A definition of a method not in the implemented trait was given. Example of
350+
erroneous code:
351+
352+
```
353+
trait Foo {
354+
fn a();
355+
}
356+
357+
struct Bar;
358+
359+
impl Foo for Bar {
360+
fn a() {}
361+
fn b() {} // error: method `b` is not a member of trait `Foo`
362+
}
363+
```
364+
365+
Please verify you didn't mispelled the method name and you used the good
366+
trait. Example:
367+
368+
```
369+
trait Foo {
370+
fn a();
371+
fn b();
372+
}
373+
374+
struct Bar;
375+
376+
impl Foo for Bar {
377+
fn a() {}
378+
fn b() {} // ok!
379+
}
380+
```
381+
"##,
348382

349383
}
350384

@@ -357,7 +391,6 @@ register_diagnostics! {
357391
E0401, // can't use type parameters from outer function
358392
E0402, // cannot use an outer type parameter in this context
359393
E0406, // undeclared associated type
360-
E0407, // method is not a member of trait
361394
E0408, // variable from pattern #1 is not bound in pattern #
362395
E0409, // variable is bound with different mode in pattern # than in
363396
// pattern #1

0 commit comments

Comments
 (0)