Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-def/src/item_tree.rs')
-rw-r--r--crates/hir-def/src/item_tree.rs7
1 files changed, 7 insertions, 0 deletions
diff --git a/crates/hir-def/src/item_tree.rs b/crates/hir-def/src/item_tree.rs
index 0f81bef500..173aa817b0 100644
--- a/crates/hir-def/src/item_tree.rs
+++ b/crates/hir-def/src/item_tree.rs
@@ -445,6 +445,13 @@ impl<N> ItemTreeId<N> {
pub fn item_tree(self, db: &dyn DefDatabase) -> Arc<ItemTree> {
self.tree.item_tree(db)
}
+
+ pub fn resolved<R>(self, db: &dyn DefDatabase, cb: impl FnOnce(&N) -> R) -> R
+ where
+ ItemTree: Index<FileItemTreeId<N>, Output = N>,
+ {
+ cb(&self.tree.item_tree(db)[self.value])
+ }
}
impl<N> Copy for ItemTreeId<N> {}