## Keyboard shortcuts

Press `←` or `→` to navigate between chapters

Press `S` or `/` to search in the book

Press `?` to show this help

Press `Esc` to hide this help

# Error code E0201

Two associated items (like methods, associated types, associated functions, etc.) were defined with the same identifier.

Erroneous code example:

    #![allow(unused)]
    fn main() {
    struct Foo(u8);

    impl Foo {
        fn bar(&self) -> bool { self.0 > 5 }
        fn bar() {} // error: duplicate associated function
    }

    trait Baz {
        type Quux;
        fn baz(&self) -> bool;
    }

    impl Baz for Foo {
        type Quux = u32;

        fn baz(&self) -> bool { true }

        // error: duplicate method
        fn baz(&self) -> bool { self.0 > 5 }

        // error: duplicate associated type
        type Quux = u32;
    }
    }

Note, however, that items with the same name are allowed for inherent `impl` blocks that don't overlap:

    #![allow(unused)]
    fn main() {
    struct Foo<T>(T);

    impl Foo<u8> {
        fn bar(&self) -> bool { self.0 > 5 }
    }

    impl Foo<bool> {
        fn bar(&self) -> bool { self.0 }
    }
    }