Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir/src/symbols.rs')
| -rw-r--r-- | crates/hir/src/symbols.rs | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/crates/hir/src/symbols.rs b/crates/hir/src/symbols.rs index f1669d5288..857c9e0ed9 100644 --- a/crates/hir/src/symbols.rs +++ b/crates/hir/src/symbols.rs @@ -39,24 +39,24 @@ impl DeclarationLocation { } pub fn original_range(&self, db: &dyn HirDatabase) -> Option<FileRange> { - find_original_file_range(db, self.hir_file_id, &self.ptr) + let node = resolve_node(db, self.hir_file_id, &self.ptr)?; + Some(node.as_ref().original_file_range(db.upcast())) } pub fn original_name_range(&self, db: &dyn HirDatabase) -> Option<FileRange> { - find_original_file_range(db, self.hir_file_id, &self.name_ptr) + let node = resolve_node(db, self.hir_file_id, &self.name_ptr)?; + node.as_ref().original_file_range_opt(db.upcast()) } } -fn find_original_file_range( +fn resolve_node( db: &dyn HirDatabase, file_id: HirFileId, ptr: &SyntaxNodePtr, -) -> Option<FileRange> { +) -> Option<InFile<SyntaxNode>> { let root = db.parse_or_expand(file_id)?; let node = ptr.to_node(&root); - let node = InFile::new(file_id, &node); - - Some(node.original_file_range(db.upcast())) + Some(InFile::new(file_id, node)) } #[derive(PartialEq, Eq, Hash, Clone, Copy, Debug)] |