aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/nameres.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_hir/src/nameres.rs')
-rw-r--r--crates/ra_hir/src/nameres.rs30
1 files changed, 15 insertions, 15 deletions
diff --git a/crates/ra_hir/src/nameres.rs b/crates/ra_hir/src/nameres.rs
index 4ff81af7f..eabaa5691 100644
--- a/crates/ra_hir/src/nameres.rs
+++ b/crates/ra_hir/src/nameres.rs
@@ -74,28 +74,28 @@ pub struct CrateDefMap {
74 /// a dependency (`std` or `core`). 74 /// a dependency (`std` or `core`).
75 prelude: Option<Module>, 75 prelude: Option<Module>,
76 extern_prelude: FxHashMap<Name, ModuleDef>, 76 extern_prelude: FxHashMap<Name, ModuleDef>,
77 root: ModuleId, 77 root: CrateModuleId,
78 modules: Arena<ModuleId, ModuleData>, 78 modules: Arena<CrateModuleId, ModuleData>,
79 public_macros: FxHashMap<Name, mbe::MacroRules>, 79 public_macros: FxHashMap<Name, mbe::MacroRules>,
80 problems: CrateDefMapProblems, 80 problems: CrateDefMapProblems,
81} 81}
82 82
83impl std::ops::Index<ModuleId> for CrateDefMap { 83impl std::ops::Index<CrateModuleId> for CrateDefMap {
84 type Output = ModuleData; 84 type Output = ModuleData;
85 fn index(&self, id: ModuleId) -> &ModuleData { 85 fn index(&self, id: CrateModuleId) -> &ModuleData {
86 &self.modules[id] 86 &self.modules[id]
87 } 87 }
88} 88}
89 89
90/// An ID of a module, **local** to a specific crate 90/// An ID of a module, **local** to a specific crate
91#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] 91#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
92pub(crate) struct ModuleId(RawId); 92struct CrateModuleId(RawId);
93impl_arena_id!(ModuleId); 93impl_arena_id!(CrateModuleId);
94 94
95#[derive(Default, Debug, PartialEq, Eq)] 95#[derive(Default, Debug, PartialEq, Eq)]
96pub(crate) struct ModuleData { 96pub(crate) struct ModuleData {
97 pub(crate) parent: Option<ModuleId>, 97 pub(crate) parent: Option<CrateModuleId>,
98 pub(crate) children: FxHashMap<Name, ModuleId>, 98 pub(crate) children: FxHashMap<Name, CrateModuleId>,
99 pub(crate) scope: ModuleScope, 99 pub(crate) scope: ModuleScope,
100 /// None for root 100 /// None for root
101 pub(crate) declaration: Option<SourceItemId>, 101 pub(crate) declaration: Option<SourceItemId>,
@@ -183,7 +183,7 @@ impl CrateDefMap {
183 let start = std::time::Instant::now(); 183 let start = std::time::Instant::now();
184 let def_map = { 184 let def_map = {
185 let edition = krate.edition(db); 185 let edition = krate.edition(db);
186 let mut modules: Arena<ModuleId, ModuleData> = Arena::default(); 186 let mut modules: Arena<CrateModuleId, ModuleData> = Arena::default();
187 let root = modules.alloc(ModuleData::default()); 187 let root = modules.alloc(ModuleData::default());
188 CrateDefMap { 188 CrateDefMap {
189 krate, 189 krate,
@@ -201,7 +201,7 @@ impl CrateDefMap {
201 Arc::new(def_map) 201 Arc::new(def_map)
202 } 202 }
203 203
204 pub(crate) fn root(&self) -> ModuleId { 204 pub(crate) fn root(&self) -> CrateModuleId {
205 self.root 205 self.root
206 } 206 }
207 207
@@ -209,7 +209,7 @@ impl CrateDefMap {
209 &self.problems 209 &self.problems
210 } 210 }
211 211
212 pub(crate) fn mk_module(&self, module_id: ModuleId) -> Module { 212 pub(crate) fn mk_module(&self, module_id: CrateModuleId) -> Module {
213 Module { krate: self.krate, module_id } 213 Module { krate: self.krate, module_id }
214 } 214 }
215 215
@@ -225,7 +225,7 @@ impl CrateDefMap {
225 &self, 225 &self,
226 file_id: HirFileId, 226 file_id: HirFileId,
227 decl_id: Option<SourceFileItemId>, 227 decl_id: Option<SourceFileItemId>,
228 ) -> Option<ModuleId> { 228 ) -> Option<CrateModuleId> {
229 let decl_id = decl_id.map(|it| it.with_file_id(file_id)); 229 let decl_id = decl_id.map(|it| it.with_file_id(file_id));
230 let (module_id, _module_data) = self.modules.iter().find(|(_module_id, module_data)| { 230 let (module_id, _module_data) = self.modules.iter().find(|(_module_id, module_data)| {
231 if decl_id.is_some() { 231 if decl_id.is_some() {
@@ -240,7 +240,7 @@ impl CrateDefMap {
240 pub(crate) fn resolve_path( 240 pub(crate) fn resolve_path(
241 &self, 241 &self,
242 db: &impl PersistentHirDatabase, 242 db: &impl PersistentHirDatabase,
243 original_module: ModuleId, 243 original_module: CrateModuleId,
244 path: &Path, 244 path: &Path,
245 ) -> (PerNs<ModuleDef>, Option<usize>) { 245 ) -> (PerNs<ModuleDef>, Option<usize>) {
246 let res = self.resolve_path_fp(db, ResolveMode::Other, original_module, path); 246 let res = self.resolve_path_fp(db, ResolveMode::Other, original_module, path);
@@ -253,7 +253,7 @@ impl CrateDefMap {
253 &self, 253 &self,
254 db: &impl PersistentHirDatabase, 254 db: &impl PersistentHirDatabase,
255 mode: ResolveMode, 255 mode: ResolveMode,
256 original_module: ModuleId, 256 original_module: CrateModuleId,
257 path: &Path, 257 path: &Path,
258 ) -> ResolvePathResult { 258 ) -> ResolvePathResult {
259 let mut segments = path.segments.iter().enumerate(); 259 let mut segments = path.segments.iter().enumerate();
@@ -394,7 +394,7 @@ impl CrateDefMap {
394 pub(crate) fn resolve_name_in_module( 394 pub(crate) fn resolve_name_in_module(
395 &self, 395 &self,
396 db: &impl PersistentHirDatabase, 396 db: &impl PersistentHirDatabase,
397 module: ModuleId, 397 module: CrateModuleId,
398 name: &Name, 398 name: &Name,
399 ) -> PerNs<ModuleDef> { 399 ) -> PerNs<ModuleDef> {
400 // Resolve in: 400 // Resolve in: