blob: e2c7e25cc84b877923f421e9bee48f9bace3f511 [file] [log] [blame] [view]
An item usage is ambiguous.
Erroneous code example:
```compile_fail,edition2018,E0659
pub mod moon {
pub fn foo() {}
}
pub mod earth {
pub fn foo() {}
}
mod collider {
pub use crate::moon::*;
pub use crate::earth::*;
}
fn main() {
crate::collider::foo(); // ERROR: `foo` is ambiguous
}
```
This error generally appears when two items with the same name are imported into
a module. Here, the `foo` functions are imported and reexported from the
`collider` module and therefore, when we're using `collider::foo()`, both
functions collide.
To solve this error, the best solution is generally to keep the path before the
item when using it. Example:
```edition2018
pub mod moon {
pub fn foo() {}
}
pub mod earth {
pub fn foo() {}
}
mod collider {
pub use crate::moon;
pub use crate::earth;
}
fn main() {
crate::collider::moon::foo(); // ok!
crate::collider::earth::foo(); // ok!
}
```