Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-def/src/data.rs')
-rw-r--r--crates/hir-def/src/data.rs13
1 files changed, 8 insertions, 5 deletions
diff --git a/crates/hir-def/src/data.rs b/crates/hir-def/src/data.rs
index d17ebd7ff9..3ecb57c756 100644
--- a/crates/hir-def/src/data.rs
+++ b/crates/hir-def/src/data.rs
@@ -506,14 +506,17 @@ impl ExternCrateDeclData {
let crate_id = if name == sym::self_.clone() {
Some(krate)
} else {
- db.crate_def_map(krate)
- .extern_prelude()
- .find(|&(prelude_name, ..)| *prelude_name == name)
- .map(|(_, (root, _))| root.krate())
+ db.crate_graph()[krate].dependencies.iter().find_map(|dep| {
+ if dep.name.symbol() == name.symbol() {
+ Some(dep.crate_id)
+ } else {
+ None
+ }
+ })
};
Arc::new(Self {
- name: extern_crate.name.clone(),
+ name,
visibility: item_tree[extern_crate.visibility].clone(),
alias: extern_crate.alias.clone(),
crate_id,