Rust errors / Names, paths and imports
Rust compiler error · checked with rustc 1.99.0
Rust error E0255: the name `foo` is defined multiple times
What it meansYou can't import a value whose name is the same as another value defined in the module.
What rustc prints
error[E0255]: the name `foo` is defined multiple times --> main.rs:3:1 | 1 | use bar::foo; // error: an item named `foo` is already in scope | -------- previous import of the value `foo` here 2 | 3 | fn foo() {} | ^^^^^^^^ `foo` redefined here | = note: `foo` must be defined only once in the value namespace of this module help: you can use `as` to change the binding name of the import | 1 | use bar::foo as other_foo; // error: an item named `foo` is already in scope | ++++++++++++
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
You can't import a value whose name is the same as another value defined in the module.
Erroneous code example:
use bar::foo; // error: an item named `foo` is already in scope
fn foo() {}
mod bar {
pub fn foo() {}
}
fn main() {}
You can use aliases in order to fix this error. Example:
use bar::foo as bar_foo; // ok!
fn foo() {}
mod bar {
pub fn foo() {}
}
fn main() {}
Or you can reference the item with its parent:
fn foo() {}
mod bar {
pub fn foo() {}
}
fn main() {
bar::foo(); // we get the item by referring to its parent
}From rustc --explain E0255 (1.99.0), part of the Rust project, MIT or Apache-2.0. Official page.
Related errors
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?