rename MFileId -> HirFileId

This commit is contained in:
Aleksey Kladov
2019-01-01 23:21:16 +03:00
parent 9c65e61849
commit 37ed2f35ba
13 changed files with 135 additions and 99 deletions

View File

@@ -15,7 +15,7 @@ use relative_path::RelativePathBuf;
use crate::{
Def, DefKind, DefLoc, DefId,
Name, Path, PathKind, HirDatabase, SourceItemId, SourceFileItemId, Crate,
MFileId,
HirFileId,
arena::{Arena, Id},
};
@@ -49,13 +49,17 @@ impl Module {
/// Returns `None` for the root module
pub fn parent_link_source(&self, db: &impl HirDatabase) -> Option<(FileId, ast::ModuleNode)> {
let link = self.module_id.parent_link(&self.tree)?;
let file_id = link.owner(&self.tree).source(&self.tree).file_id();
let file_id = link
.owner(&self.tree)
.source(&self.tree)
.file_id()
.as_original_file();
let src = link.bind_source(&self.tree, db);
Some((file_id, src))
}
pub fn source(&self) -> ModuleSource {
self.module_id.source(&self.tree)
pub fn file_id(&self) -> FileId {
self.source().file_id().as_original_file()
}
/// Parent module. Returns `None` if this is a root module.
@@ -70,7 +74,7 @@ impl Module {
/// Returns the crate this module is part of.
pub fn krate(&self, db: &impl HirDatabase) -> Option<Crate> {
let root_id = self.module_id.crate_root(&self.tree);
let file_id = root_id.source(&self.tree).file_id();
let file_id = root_id.source(&self.tree).file_id().as_original_file();
let crate_graph = db.crate_graph();
let crate_id = crate_graph.crate_id_for_crate_root(file_id)?;
Some(Crate::new(crate_id))
@@ -163,6 +167,10 @@ impl Module {
pub fn problems(&self, db: &impl HirDatabase) -> Vec<(SyntaxNode, Problem)> {
self.module_id.problems(&self.tree, db)
}
pub(crate) fn source(&self) -> ModuleSource {
self.module_id.source(&self.tree)
}
}
/// Physically, rust source is organized as a set of files, but logically it is
@@ -292,34 +300,28 @@ pub struct ModuleData {
impl ModuleSource {
// precondition: item_id **must** point to module
fn new(file_id: FileId, item_id: Option<SourceFileItemId>) -> ModuleSource {
let source_item_id = SourceItemId {
mfile_id: file_id.into(),
item_id,
};
fn new(file_id: HirFileId, item_id: Option<SourceFileItemId>) -> ModuleSource {
let source_item_id = SourceItemId { file_id, item_id };
ModuleSource(source_item_id)
}
pub(crate) fn new_file(file_id: FileId) -> ModuleSource {
pub(crate) fn new_file(file_id: HirFileId) -> ModuleSource {
ModuleSource::new(file_id, None)
}
pub(crate) fn new_inline(
db: &impl HirDatabase,
file_id: FileId,
file_id: HirFileId,
m: ast::Module,
) -> ModuleSource {
assert!(!m.has_semi());
let file_items = db.file_items(file_id.into());
let item_id = file_items.id_of(file_id.into(), m.syntax());
let file_items = db.file_items(file_id);
let item_id = file_items.id_of(file_id, m.syntax());
ModuleSource::new(file_id, Some(item_id))
}
pub fn file_id(self) -> FileId {
match self.0.mfile_id {
MFileId::File(file_id) => file_id,
MFileId::Macro(_) => unreachable!(),
}
pub(crate) fn file_id(self) -> HirFileId {
self.0.file_id
}
pub(crate) fn resolve(self, db: &impl HirDatabase) -> ModuleSourceNode {