Rust errors / Types and traits
Rust compiler error · checked with rustc 1.99.0
Rust error E0407: method `b` is not a member of trait `Foo`
What it meansA definition of a method not in the implemented trait was given in a trait implementation.
What rustc prints
error[E0407]: method `b` is not a member of trait `Foo`
--> main.rs:9:5
|
9 | fn b() {} // error: method `b` is not a member of trait `Foo`
| ^^^-^^^^^
| | |
| | help: there is an associated function with a similar name: `a`
| not a member of trait `Foo`Real output of rustc 1.99.0 compiling the official example below (2021 edition). Your names and line numbers will differ; the first line is the part to match.
The compiler team's explanation
A definition of a method not in the implemented trait was given in a trait implementation.
Erroneous code example:
trait Foo {
fn a();
}
struct Bar;
impl Foo for Bar {
fn a() {}
fn b() {} // error: method `b` is not a member of trait `Foo`
}
Please verify you didn't misspell the method name and you used the correct trait. First example:
trait Foo {
fn a();
fn b();
}
struct Bar;
impl Foo for Bar {
fn a() {}
fn b() {} // ok!
}
Second example:
trait Foo {
fn a();
}
struct Bar;
impl Foo for Bar {
fn a() {}
}
impl Bar {
fn b() {}
}From rustc --explain E0407 (1.99.0), part of the Rust project, MIT or Apache-2.0. Official page.
Related errors
- E0308mismatched types
- E0277the trait bound is not satisfied
- E0599no method named X found in the current scope
- E0433failed to resolve
- E0404expected trait, found struct `Foo`
- E0405cannot find trait `SomeTrait` in this scope
- E0408variable `y` is not bound in all patterns
- E0409variable `y` is bound inconsistently across alternatives separated by `|`
Up next
Often hit nextE0308: mismatched typesA related error from the same family.Read it next →Did this answer your question?