aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/nameres/raw.rs
diff options
context:
space:
mode:
authorAleksey Kladov <[email protected]>2019-03-26 14:25:14 +0000
committerAleksey Kladov <[email protected]>2019-03-26 14:25:14 +0000
commitfb8b354dcc837d5eb9b81fc205e4282a203df177 (patch)
treed44edc8c6bf90ff29d1b4422b69ccc3ada06ad38 /crates/ra_hir/src/nameres/raw.rs
parent619a4c05ba098220ab0fb65d42b7f415dfcc1b6a (diff)
add typed ids
Diffstat (limited to 'crates/ra_hir/src/nameres/raw.rs')
-rw-r--r--crates/ra_hir/src/nameres/raw.rs13
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
13use crate::{ 13use 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)]
117pub(super) enum ModuleData { 117pub(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);