mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-09-30 13:51:31 +00:00
Remove ItemTree::source
`HasSource` should be used instead
This commit is contained in:
parent
437527b226
commit
8447f101ac
2 changed files with 4 additions and 18 deletions
|
@ -209,18 +209,6 @@ impl ItemTree {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn source<S: ItemTreeNode>(&self, db: &dyn DefDatabase, of: ItemTreeId<S>) -> S::Source {
|
|
||||||
// This unwrap cannot fail, since it has either succeeded above, or resulted in an empty
|
|
||||||
// ItemTree (in which case there is no valid `FileItemTreeId` to call this method with).
|
|
||||||
let root =
|
|
||||||
db.parse_or_expand(of.file_id).expect("parse_or_expand failed on constructed ItemTree");
|
|
||||||
|
|
||||||
let id = self[of.value].ast_id();
|
|
||||||
let map = db.ast_id_map(of.file_id);
|
|
||||||
let ptr = map.get(id);
|
|
||||||
ptr.to_node(&root)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn data(&self) -> &ItemTreeData {
|
fn data(&self) -> &ItemTreeData {
|
||||||
self.data.as_ref().expect("attempted to access data of empty ItemTree")
|
self.data.as_ref().expect("attempted to access data of empty ItemTree")
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,6 +19,7 @@ use hir_def::{
|
||||||
item_scope::ItemScope,
|
item_scope::ItemScope,
|
||||||
keys,
|
keys,
|
||||||
nameres::DefMap,
|
nameres::DefMap,
|
||||||
|
src::HasSource,
|
||||||
AssocItemId, DefWithBodyId, LocalModuleId, Lookup, ModuleDefId,
|
AssocItemId, DefWithBodyId, LocalModuleId, Lookup, ModuleDefId,
|
||||||
};
|
};
|
||||||
use hir_expand::{db::AstDatabase, InFile};
|
use hir_expand::{db::AstDatabase, InFile};
|
||||||
|
@ -195,18 +196,15 @@ fn infer_with_mismatches(content: &str, include_mismatches: bool) -> String {
|
||||||
defs.sort_by_key(|def| match def {
|
defs.sort_by_key(|def| match def {
|
||||||
DefWithBodyId::FunctionId(it) => {
|
DefWithBodyId::FunctionId(it) => {
|
||||||
let loc = it.lookup(&db);
|
let loc = it.lookup(&db);
|
||||||
let tree = db.item_tree(loc.id.file_id);
|
loc.source(&db).value.syntax().text_range().start()
|
||||||
tree.source(&db, loc.id).syntax().text_range().start()
|
|
||||||
}
|
}
|
||||||
DefWithBodyId::ConstId(it) => {
|
DefWithBodyId::ConstId(it) => {
|
||||||
let loc = it.lookup(&db);
|
let loc = it.lookup(&db);
|
||||||
let tree = db.item_tree(loc.id.file_id);
|
loc.source(&db).value.syntax().text_range().start()
|
||||||
tree.source(&db, loc.id).syntax().text_range().start()
|
|
||||||
}
|
}
|
||||||
DefWithBodyId::StaticId(it) => {
|
DefWithBodyId::StaticId(it) => {
|
||||||
let loc = it.lookup(&db);
|
let loc = it.lookup(&db);
|
||||||
let tree = db.item_tree(loc.id.file_id);
|
loc.source(&db).value.syntax().text_range().start()
|
||||||
tree.source(&db, loc.id).syntax().text_range().start()
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
for def in defs {
|
for def in defs {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue