diff options
Diffstat (limited to 'crates/ra_hir/src/module.rs')
-rw-r--r-- | crates/ra_hir/src/module.rs | 15 |
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; | |||
15 | use crate::{ | 15 | use 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 { | |||
292 | impl ModuleSource { | 293 | impl 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 { |