Error code E0407

A definition of a method not in the implemented trait was given in a trait implementation.

Erroneous code example:

#![allow(unused)]
fn main() {
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:

#![allow(unused)]
fn main() {
trait Foo {
    fn a();
    fn b();
}

struct Bar;

impl Foo for Bar {
    fn a() {}
    fn b() {} // ok!
}
}

Second example:

#![allow(unused)]
fn main() {
trait Foo {
    fn a();
}

struct Bar;

impl Foo for Bar {
    fn a() {}
}

impl Bar {
    fn b() {}
}
}