rename MFileId -> HirFileId
This commit is contained in:
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user