aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/module.rs
diff options
context:
space:
mode:
authorAleksey Kladov <[email protected]>2019-01-01 17:59:00 +0000
committerAleksey Kladov <[email protected]>2019-01-01 19:15:35 +0000
commit289391e1635987d6a1ccbb9b40bce242590d461d (patch)
tree2567207cde92e5ef77a2378ef6726eaa548a0dea /crates/ra_hir/src/module.rs
parent4161466918baedaeef995040888471a65ca997a4 (diff)
use MFile
Diffstat (limited to 'crates/ra_hir/src/module.rs')
-rw-r--r--crates/ra_hir/src/module.rs15
1 files changed, 11 insertions, 4 deletions
diff --git a/crates/ra_hir/src/module.rs b/crates/ra_hir/src/module.rs
index 87e30191f..dde036f2c 100644
--- a/crates/ra_hir/src/module.rs
+++ b/crates/ra_hir/src/module.rs
@@ -15,6 +15,7 @@ use relative_path::RelativePathBuf;
15use crate::{ 15use crate::{
16 Def, DefKind, DefLoc, DefId, 16 Def, DefKind, DefLoc, DefId,
17 Name, Path, PathKind, HirDatabase, SourceItemId, SourceFileItemId, Crate, 17 Name, Path, PathKind, HirDatabase, SourceItemId, SourceFileItemId, Crate,
18 MFileId,
18 arena::{Arena, Id}, 19 arena::{Arena, Id},
19}; 20};
20 21
@@ -292,7 +293,10 @@ pub struct ModuleData {
292impl ModuleSource { 293impl ModuleSource {
293 // precondition: item_id **must** point to module 294 // precondition: item_id **must** point to module
294 fn new(file_id: FileId, item_id: Option<SourceFileItemId>) -> ModuleSource { 295 fn new(file_id: FileId, item_id: Option<SourceFileItemId>) -> ModuleSource {
295 let source_item_id = SourceItemId { file_id, item_id }; 296 let source_item_id = SourceItemId {
297 mfile_id: file_id.into(),
298 item_id,
299 };
296 ModuleSource(source_item_id) 300 ModuleSource(source_item_id)
297 } 301 }
298 302
@@ -306,13 +310,16 @@ impl ModuleSource {
306 m: ast::Module, 310 m: ast::Module,
307 ) -> ModuleSource { 311 ) -> ModuleSource {
308 assert!(!m.has_semi()); 312 assert!(!m.has_semi());
309 let file_items = db.file_items(file_id); 313 let file_items = db.file_items(file_id.into());
310 let item_id = file_items.id_of(file_id, m.syntax()); 314 let item_id = file_items.id_of(file_id.into(), m.syntax());
311 ModuleSource::new(file_id, Some(item_id)) 315 ModuleSource::new(file_id, Some(item_id))
312 } 316 }
313 317
314 pub fn file_id(self) -> FileId { 318 pub fn file_id(self) -> FileId {
315 self.0.file_id 319 match self.0.mfile_id {
320 MFileId::File(file_id) => file_id,
321 MFileId::Macro(_) => unreachable!(),
322 }
316 } 323 }
317 324
318 pub(crate) fn resolve(self, db: &impl HirDatabase) -> ModuleSourceNode { 325 pub(crate) fn resolve(self, db: &impl HirDatabase) -> ModuleSourceNode {