diff options
Diffstat (limited to 'crates/ra_hir/src/resolve.rs')
-rw-r--r-- | crates/ra_hir/src/resolve.rs | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/crates/ra_hir/src/resolve.rs b/crates/ra_hir/src/resolve.rs index 3c797c0c3..8b6269407 100644 --- a/crates/ra_hir/src/resolve.rs +++ b/crates/ra_hir/src/resolve.rs | |||
@@ -1,6 +1,7 @@ | |||
1 | //! Name resolution. | 1 | //! Name resolution. |
2 | use std::sync::Arc; | 2 | use std::sync::Arc; |
3 | 3 | ||
4 | use hir_def::CrateModuleId; | ||
4 | use rustc_hash::FxHashSet; | 5 | use rustc_hash::FxHashSet; |
5 | 6 | ||
6 | use crate::{ | 7 | use crate::{ |
@@ -13,7 +14,7 @@ use crate::{ | |||
13 | generics::GenericParams, | 14 | generics::GenericParams, |
14 | impl_block::ImplBlock, | 15 | impl_block::ImplBlock, |
15 | name::{Name, SELF_PARAM, SELF_TYPE}, | 16 | name::{Name, SELF_PARAM, SELF_TYPE}, |
16 | nameres::{CrateDefMap, CrateModuleId, PerNs}, | 17 | nameres::{CrateDefMap, PerNs}, |
17 | path::{Path, PathKind}, | 18 | path::{Path, PathKind}, |
18 | Adt, BuiltinType, Const, Enum, EnumVariant, Function, MacroDef, ModuleDef, Static, Struct, | 19 | Adt, BuiltinType, Const, Enum, EnumVariant, Function, MacroDef, ModuleDef, Static, Struct, |
19 | Trait, TypeAlias, | 20 | Trait, TypeAlias, |
@@ -330,8 +331,8 @@ impl Resolver { | |||
330 | for scope in &self.scopes { | 331 | for scope in &self.scopes { |
331 | if let Scope::ModuleScope(m) = scope { | 332 | if let Scope::ModuleScope(m) = scope { |
332 | if let Some(prelude) = m.crate_def_map.prelude() { | 333 | if let Some(prelude) = m.crate_def_map.prelude() { |
333 | let prelude_def_map = db.crate_def_map(prelude.krate); | 334 | let prelude_def_map = db.crate_def_map(prelude.krate()); |
334 | traits.extend(prelude_def_map[prelude.module_id].scope.traits()); | 335 | traits.extend(prelude_def_map[prelude.id.module_id].scope.traits()); |
335 | } | 336 | } |
336 | traits.extend(m.crate_def_map[m.module_id].scope.traits()); | 337 | traits.extend(m.crate_def_map[m.module_id].scope.traits()); |
337 | } | 338 | } |
@@ -444,10 +445,12 @@ impl Scope { | |||
444 | f(name.clone(), ScopeDef::ModuleDef(*def)); | 445 | f(name.clone(), ScopeDef::ModuleDef(*def)); |
445 | }); | 446 | }); |
446 | if let Some(prelude) = m.crate_def_map.prelude() { | 447 | if let Some(prelude) = m.crate_def_map.prelude() { |
447 | let prelude_def_map = db.crate_def_map(prelude.krate); | 448 | let prelude_def_map = db.crate_def_map(prelude.krate()); |
448 | prelude_def_map[prelude.module_id].scope.entries().for_each(|(name, res)| { | 449 | prelude_def_map[prelude.id.module_id].scope.entries().for_each( |
449 | f(name.clone(), res.def.into()); | 450 | |(name, res)| { |
450 | }); | 451 | f(name.clone(), res.def.into()); |
452 | }, | ||
453 | ); | ||
451 | } | 454 | } |
452 | } | 455 | } |
453 | Scope::GenericParams(gp) => { | 456 | Scope::GenericParams(gp) => { |