aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir_def/src/nameres.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_hir_def/src/nameres.rs')
-rw-r--r--crates/ra_hir_def/src/nameres.rs32
1 files changed, 16 insertions, 16 deletions
diff --git a/crates/ra_hir_def/src/nameres.rs b/crates/ra_hir_def/src/nameres.rs
index 0b3b60a37..d82356bbd 100644
--- a/crates/ra_hir_def/src/nameres.rs
+++ b/crates/ra_hir_def/src/nameres.rs
@@ -74,7 +74,7 @@ use crate::{
74 db::DefDatabase, 74 db::DefDatabase,
75 nameres::{diagnostics::DefDiagnostic, path_resolution::ResolveMode, per_ns::PerNs}, 75 nameres::{diagnostics::DefDiagnostic, path_resolution::ResolveMode, per_ns::PerNs},
76 path::Path, 76 path::Path,
77 AstId, CrateModuleId, FunctionId, ImplId, LocalImportId, ModuleDefId, ModuleId, TraitId, 77 AstId, FunctionId, ImplId, LocalImportId, LocalModuleId, ModuleDefId, ModuleId, TraitId,
78}; 78};
79 79
80/// Contains all top-level defs from a macro-expanded crate 80/// Contains all top-level defs from a macro-expanded crate
@@ -87,8 +87,8 @@ pub struct CrateDefMap {
87 /// a dependency (`std` or `core`). 87 /// a dependency (`std` or `core`).
88 prelude: Option<ModuleId>, 88 prelude: Option<ModuleId>,
89 extern_prelude: FxHashMap<Name, ModuleDefId>, 89 extern_prelude: FxHashMap<Name, ModuleDefId>,
90 root: CrateModuleId, 90 root: LocalModuleId,
91 modules: Arena<CrateModuleId, ModuleData>, 91 modules: Arena<LocalModuleId, ModuleData>,
92 92
93 /// Some macros are not well-behavior, which leads to infinite loop 93 /// Some macros are not well-behavior, which leads to infinite loop
94 /// e.g. macro_rules! foo { ($ty:ty) => { foo!($ty); } } 94 /// e.g. macro_rules! foo { ($ty:ty) => { foo!($ty); } }
@@ -105,17 +105,17 @@ pub struct CrateDefMap {
105 diagnostics: Vec<DefDiagnostic>, 105 diagnostics: Vec<DefDiagnostic>,
106} 106}
107 107
108impl std::ops::Index<CrateModuleId> for CrateDefMap { 108impl std::ops::Index<LocalModuleId> for CrateDefMap {
109 type Output = ModuleData; 109 type Output = ModuleData;
110 fn index(&self, id: CrateModuleId) -> &ModuleData { 110 fn index(&self, id: LocalModuleId) -> &ModuleData {
111 &self.modules[id] 111 &self.modules[id]
112 } 112 }
113} 113}
114 114
115#[derive(Default, Debug, PartialEq, Eq)] 115#[derive(Default, Debug, PartialEq, Eq)]
116pub struct ModuleData { 116pub struct ModuleData {
117 pub parent: Option<CrateModuleId>, 117 pub parent: Option<LocalModuleId>,
118 pub children: FxHashMap<Name, CrateModuleId>, 118 pub children: FxHashMap<Name, LocalModuleId>,
119 pub scope: ModuleScope, 119 pub scope: ModuleScope,
120 120
121 // FIXME: these can't be both null, we need a three-state enum here. 121 // FIXME: these can't be both null, we need a three-state enum here.
@@ -225,7 +225,7 @@ impl CrateDefMap {
225 let def_map = { 225 let def_map = {
226 let crate_graph = db.crate_graph(); 226 let crate_graph = db.crate_graph();
227 let edition = crate_graph.edition(krate); 227 let edition = crate_graph.edition(krate);
228 let mut modules: Arena<CrateModuleId, ModuleData> = Arena::default(); 228 let mut modules: Arena<LocalModuleId, ModuleData> = Arena::default();
229 let root = modules.alloc(ModuleData::default()); 229 let root = modules.alloc(ModuleData::default());
230 CrateDefMap { 230 CrateDefMap {
231 krate, 231 krate,
@@ -246,7 +246,7 @@ impl CrateDefMap {
246 self.krate 246 self.krate
247 } 247 }
248 248
249 pub fn root(&self) -> CrateModuleId { 249 pub fn root(&self) -> LocalModuleId {
250 self.root 250 self.root
251 } 251 }
252 252
@@ -261,7 +261,7 @@ impl CrateDefMap {
261 pub fn add_diagnostics( 261 pub fn add_diagnostics(
262 &self, 262 &self,
263 db: &impl DefDatabase, 263 db: &impl DefDatabase,
264 module: CrateModuleId, 264 module: LocalModuleId,
265 sink: &mut DiagnosticSink, 265 sink: &mut DiagnosticSink,
266 ) { 266 ) {
267 self.diagnostics.iter().for_each(|it| it.add_to(db, module, sink)) 267 self.diagnostics.iter().for_each(|it| it.add_to(db, module, sink))
@@ -270,18 +270,18 @@ impl CrateDefMap {
270 pub fn resolve_path( 270 pub fn resolve_path(
271 &self, 271 &self,
272 db: &impl DefDatabase, 272 db: &impl DefDatabase,
273 original_module: CrateModuleId, 273 original_module: LocalModuleId,
274 path: &Path, 274 path: &Path,
275 ) -> (PerNs, Option<usize>) { 275 ) -> (PerNs, Option<usize>) {
276 let res = self.resolve_path_fp_with_macro(db, ResolveMode::Other, original_module, path); 276 let res = self.resolve_path_fp_with_macro(db, ResolveMode::Other, original_module, path);
277 (res.resolved_def, res.segment_index) 277 (res.resolved_def, res.segment_index)
278 } 278 }
279 279
280 pub fn modules(&self) -> impl Iterator<Item = CrateModuleId> + '_ { 280 pub fn modules(&self) -> impl Iterator<Item = LocalModuleId> + '_ {
281 self.modules.iter().map(|(id, _data)| id) 281 self.modules.iter().map(|(id, _data)| id)
282 } 282 }
283 283
284 pub fn modules_for_file(&self, file_id: FileId) -> impl Iterator<Item = CrateModuleId> + '_ { 284 pub fn modules_for_file(&self, file_id: FileId) -> impl Iterator<Item = LocalModuleId> + '_ {
285 self.modules 285 self.modules
286 .iter() 286 .iter()
287 .filter(move |(_id, data)| data.definition == Some(file_id)) 287 .filter(move |(_id, data)| data.definition == Some(file_id))
@@ -317,12 +317,12 @@ mod diagnostics {
317 use ra_db::RelativePathBuf; 317 use ra_db::RelativePathBuf;
318 use ra_syntax::{ast, AstPtr}; 318 use ra_syntax::{ast, AstPtr};
319 319
320 use crate::{db::DefDatabase, diagnostics::UnresolvedModule, nameres::CrateModuleId, AstId}; 320 use crate::{db::DefDatabase, diagnostics::UnresolvedModule, nameres::LocalModuleId, AstId};
321 321
322 #[derive(Debug, PartialEq, Eq)] 322 #[derive(Debug, PartialEq, Eq)]
323 pub(super) enum DefDiagnostic { 323 pub(super) enum DefDiagnostic {
324 UnresolvedModule { 324 UnresolvedModule {
325 module: CrateModuleId, 325 module: LocalModuleId,
326 declaration: AstId<ast::Module>, 326 declaration: AstId<ast::Module>,
327 candidate: RelativePathBuf, 327 candidate: RelativePathBuf,
328 }, 328 },
@@ -332,7 +332,7 @@ mod diagnostics {
332 pub(super) fn add_to( 332 pub(super) fn add_to(
333 &self, 333 &self,
334 db: &impl DefDatabase, 334 db: &impl DefDatabase,
335 target_module: CrateModuleId, 335 target_module: LocalModuleId,
336 sink: &mut DiagnosticSink, 336 sink: &mut DiagnosticSink,
337 ) { 337 ) {
338 match self { 338 match self {