Rust errors / Names, paths and imports
Rust compiler error · checked with rustc 1.99.0
Rust error E0519: the current crate is indistinguishable from one of its dependencies, in terms of metadata
What it meansThe current crate is indistinguishable from one of its dependencies, in terms of metadata.
The compiler team's explanation
The current crate is indistinguishable from one of its dependencies, in terms of metadata.
Example of erroneous code:
a.rs
#![crate_name = "a"]
#![crate_type = "lib"]
pub fn foo() {}
b.rs
#![crate_name = "a"]
#![crate_type = "lib"]
// error: the current crate is indistinguishable from one of its dependencies:
// it has the same crate-name `a` and was compiled with the same
// `-C metadata` arguments. This will result in symbol conflicts between
// the two.
extern crate a;
pub fn foo() {}
fn bar() {
a::foo(); // is this calling the local crate or the dependency?
}
The above example compiles two crates with exactly the same name and crate_type (plus any other metadata). This causes an error because it becomes impossible for the compiler to distinguish between symbols (pub item names).
This error can be fixed by:
- Using Cargo, the Rust package manager, automatically fixing this issue.
- Recompiling the crate with different metadata (different name/
crate_type).
From rustc --explain E0519 (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?