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.rs8
1 files changed, 8 insertions, 0 deletions
diff --git a/crates/hir/src/symbols.rs b/crates/hir/src/symbols.rs
index 5d68aa52e6..4eaf99e3e7 100644
--- a/crates/hir/src/symbols.rs
+++ b/crates/hir/src/symbols.rs
@@ -39,11 +39,19 @@ impl DeclarationLocation {
}
pub fn original_range(&self, db: &dyn HirDatabase) -> FileRange {
+ if let Some(file_id) = self.hir_file_id.file_id() {
+ // fast path to prevent parsing
+ return FileRange { file_id, range: self.ptr.text_range() };
+ }
let node = resolve_node(db, self.hir_file_id, &self.ptr);
node.as_ref().original_file_range(db.upcast())
}
pub fn original_name_range(&self, db: &dyn HirDatabase) -> Option<FileRange> {
+ if let Some(file_id) = self.hir_file_id.file_id() {
+ // fast path to prevent parsing
+ return Some(FileRange { file_id, range: self.ptr.text_range() });
+ }
let node = resolve_node(db, self.hir_file_id, &self.name_ptr);
node.as_ref().original_file_range_opt(db.upcast())
}