Rust errors / Names, paths and imports
Rust compiler error · checked with rustc 1.99.0
Rust error E0252: the name `baz` is defined multiple times
What it meansTwo items of the same name cannot be imported without rebinding one of the items under a new local name.
What rustc prints
error[E0252]: the name `baz` is defined multiple times --> main.rs:2:5 | 1 | use foo::baz; | -------- previous import of the type `baz` here 2 | use bar::baz; // error, do `use bar::baz as quux` instead | ^^^^^^^^ `baz` reimported here | = note: `baz` must be defined only once in the type namespace of this module help: you can use `as` to change the binding name of the import | 2 | use bar::baz as other_baz; // error, do `use bar::baz as quux` instead | ++++++++++++
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
Two items of the same name cannot be imported without rebinding one of the items under a new local name.
Erroneous code example:
use foo::baz;
use bar::baz; // error, do `use bar::baz as quux` instead
fn main() {}
mod foo {
pub struct baz;
}
mod bar {
pub mod baz {}
}
You can use aliases in order to fix this error. Example:
use foo::baz as foo_baz;
use bar::baz; // ok!
fn main() {}
mod foo {
pub struct baz;
}
mod bar {
pub mod baz {}
}
Or you can reference the item with its parent:
use bar::baz;
fn main() {
let x = foo::baz; // ok!
}
mod foo {
pub struct baz;
}
mod bar {
pub mod baz {}
}From rustc --explain E0252 (1.99.0), part of the Rust project, MIT or Apache-2.0. Official page.
Related errors
- E0425cannot find value in this scope
- E0603is private
- E0432unresolved import
- E0005refutable pattern in local binding
- E0124field `field1` is already declared
- E0130patterns aren't allowed in foreign function declarations
- E0254the name `core` is defined multiple times
- E0255the name `foo` is defined multiple times
Up next
Often hit nextE0425: cannot find value in this scopeA related error from the same family.Read it next →Did this answer your question?