diff options
Diffstat (limited to 'crates/ra_hir_def/src/nameres/collector.rs')
-rw-r--r-- | crates/ra_hir_def/src/nameres/collector.rs | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/crates/ra_hir_def/src/nameres/collector.rs b/crates/ra_hir_def/src/nameres/collector.rs index 7e6083961..6db9937a4 100644 --- a/crates/ra_hir_def/src/nameres/collector.rs +++ b/crates/ra_hir_def/src/nameres/collector.rs | |||
@@ -36,11 +36,12 @@ pub(super) fn collect_defs(db: &impl DefDatabase2, mut def_map: CrateDefMap) -> | |||
36 | ); | 36 | ); |
37 | 37 | ||
38 | // look for the prelude | 38 | // look for the prelude |
39 | if def_map.prelude.is_none() { | 39 | // If the dependency defines a prelude, we overwrite an already defined |
40 | let map = db.crate_def_map(dep.crate_id); | 40 | // prelude. This is necessary to import the "std" prelude if a crate |
41 | if map.prelude.is_some() { | 41 | // depends on both "core" and "std". |
42 | def_map.prelude = map.prelude; | 42 | let dep_def_map = db.crate_def_map(dep.crate_id); |
43 | } | 43 | if dep_def_map.prelude.is_some() { |
44 | def_map.prelude = dep_def_map.prelude; | ||
44 | } | 45 | } |
45 | } | 46 | } |
46 | 47 | ||