about summary refs log tree commit diff
diff options
context:
space:
mode:
authorLukas Wirth <lukastw97@gmail.com>2022-07-27 12:45:29 +0200
committerLukas Wirth <lukastw97@gmail.com>2022-07-27 12:46:04 +0200
commit6c379b9f4bb9774758e018944a33db5eb29622fb (patch)
tree325f5a9a1b956920cbd47d6e544a3454bd822c0e
parentc2eebd7a50faa2578376a80ceba91bdc75d748e2 (diff)
downloadrust-6c379b9f4bb9774758e018944a33db5eb29622fb.tar.gz
rust-6c379b9f4bb9774758e018944a33db5eb29622fb.zip
fix: Fix Semantics::original_ast_node not caching the resulting file
-rw-r--r--crates/hir/src/semantics.rs7
1 files changed, 6 insertions, 1 deletions
diff --git a/crates/hir/src/semantics.rs b/crates/hir/src/semantics.rs
index fc8f23f19ab..a75e5cafd0b 100644
--- a/crates/hir/src/semantics.rs
+++ b/crates/hir/src/semantics.rs
@@ -924,7 +924,12 @@ impl<'db> SemanticsImpl<'db> {
     }
 
     fn original_ast_node<N: AstNode>(&self, node: N) -> Option<N> {
-        self.wrap_node_infile(node).original_ast_node(self.db.upcast()).map(|it| it.value)
+        self.wrap_node_infile(node).original_ast_node(self.db.upcast()).map(
+            |InFile { file_id, value }| {
+                self.cache(find_root(value.syntax()), file_id);
+                value
+            },
+        )
     }
 
     fn diagnostics_display_range(&self, src: InFile<SyntaxNodePtr>) -> FileRange {