diff options
Diffstat (limited to 'crates/ra_hir/src/nameres/raw.rs')
-rw-r--r-- | crates/ra_hir/src/nameres/raw.rs | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/crates/ra_hir/src/nameres/raw.rs b/crates/ra_hir/src/nameres/raw.rs index f32004601..09acd5a98 100644 --- a/crates/ra_hir/src/nameres/raw.rs +++ b/crates/ra_hir/src/nameres/raw.rs | |||
@@ -12,7 +12,7 @@ use ra_syntax::{ | |||
12 | 12 | ||
13 | use crate::{ | 13 | use crate::{ |
14 | DefDatabase, Name, AsName, Path, HirFileId, ModuleSource, | 14 | DefDatabase, Name, AsName, Path, HirFileId, ModuleSource, |
15 | SourceFileItemId, SourceFileItems, | 15 | SourceFileItemId, SourceFileItems, FileAstId, |
16 | }; | 16 | }; |
17 | 17 | ||
18 | /// `RawItems` is a set of top-level items in a file (except for impls). | 18 | /// `RawItems` is a set of top-level items in a file (except for impls). |
@@ -115,8 +115,8 @@ impl_arena_id!(Module); | |||
115 | 115 | ||
116 | #[derive(Debug, PartialEq, Eq)] | 116 | #[derive(Debug, PartialEq, Eq)] |
117 | pub(super) enum ModuleData { | 117 | pub(super) enum ModuleData { |
118 | Declaration { name: Name, source_item_id: SourceFileItemId }, | 118 | Declaration { name: Name, ast_id: FileAstId<ast::Module> }, |
119 | Definition { name: Name, source_item_id: SourceFileItemId, items: Vec<RawItem> }, | 119 | Definition { name: Name, ast_id: FileAstId<ast::Module>, items: Vec<RawItem> }, |
120 | } | 120 | } |
121 | 121 | ||
122 | #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] | 122 | #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] |
@@ -221,10 +221,9 @@ impl RawItemsCollector { | |||
221 | Some(it) => it.as_name(), | 221 | Some(it) => it.as_name(), |
222 | None => return, | 222 | None => return, |
223 | }; | 223 | }; |
224 | let source_item_id = self.source_file_items.id_of_unchecked(module.syntax()); | 224 | let ast_id = self.source_file_items.ast_id(module); |
225 | if module.has_semi() { | 225 | if module.has_semi() { |
226 | let item = | 226 | let item = self.raw_items.modules.alloc(ModuleData::Declaration { name, ast_id }); |
227 | self.raw_items.modules.alloc(ModuleData::Declaration { name, source_item_id }); | ||
228 | self.push_item(current_module, RawItem::Module(item)); | 227 | self.push_item(current_module, RawItem::Module(item)); |
229 | return; | 228 | return; |
230 | } | 229 | } |
@@ -232,7 +231,7 @@ impl RawItemsCollector { | |||
232 | if let Some(item_list) = module.item_list() { | 231 | if let Some(item_list) = module.item_list() { |
233 | let item = self.raw_items.modules.alloc(ModuleData::Definition { | 232 | let item = self.raw_items.modules.alloc(ModuleData::Definition { |
234 | name, | 233 | name, |
235 | source_item_id, | 234 | ast_id, |
236 | items: Vec::new(), | 235 | items: Vec::new(), |
237 | }); | 236 | }); |
238 | self.process_module(Some(item), item_list); | 237 | self.process_module(Some(item), item_list); |