Rust errors / Types and traits
Rust compiler error · checked with rustc 1.99.0
Rust error E0201: duplicate definitions with name `baz`:
What it meansTwo associated items (like methods, associated types, associated functions, etc.) were defined with the same identifier.
What rustc prints
error[E0201]: duplicate definitions with name `baz`:
--> main.rs:19:5
|
10 | fn baz(&self) -> bool;
| ---------------------- item in trait
...
16 | fn baz(&self) -> bool { true }
| ------------------------------ previous definition here
...
19 | fn baz(&self) -> bool { self.0 > 5 }
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ duplicate definitionReal 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
Two associated items (like methods, associated types, associated functions, etc.) were defined with the same identifier.
Erroneous code example:
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:
struct Foo<T>(T);
impl Foo<u8> {
fn bar(&self) -> bool { self.0 > 5 }
}
impl Foo<bool> {
fn bar(&self) -> bool { self.0 }
}From rustc --explain E0201 (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
- E0199implementing the trait `Bar` is not unsafe
- E0200the trait `Bar` requires an `unsafe impl` declaration
- E0203duplicate relaxed `Sized` bounds
- E0204the trait Copy cannot be implemented for this type
Up next
Often hit nextE0308: mismatched typesA related error from the same family.Read it next →Did this answer your question?