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 {}
}
RunYou 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 {}
}
RunOr 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 {}
}
Run