about summary refs log tree commit diff
diff options
context:
space:
mode:
authorLukas Wirth <lukastw97@gmail.com>2024-06-10 12:04:35 +0200
committerLukas Wirth <lukastw97@gmail.com>2024-06-10 12:04:35 +0200
commitac9cdbbfa69c7f0f9dc771b532e761d432286418 (patch)
tree08a74fc917317bf07a627c9266803d750ff2f426
parent0a57742600a65df227d5dd53e6058be963938a11 (diff)
downloadrust-ac9cdbbfa69c7f0f9dc771b532e761d432286418.tar.gz
rust-ac9cdbbfa69c7f0f9dc771b532e761d432286418.zip
Remove extra parse cache from Semantics again
-rw-r--r--src/tools/rust-analyzer/crates/hir/src/semantics.rs10
1 files changed, 1 insertions, 9 deletions
diff --git a/src/tools/rust-analyzer/crates/hir/src/semantics.rs b/src/tools/rust-analyzer/crates/hir/src/semantics.rs
index 964401d48d9..a38cef2fd5d 100644
--- a/src/tools/rust-analyzer/crates/hir/src/semantics.rs
+++ b/src/tools/rust-analyzer/crates/hir/src/semantics.rs
@@ -132,9 +132,6 @@ pub struct SemanticsImpl<'db> {
     s2d_cache: RefCell<SourceToDefCache>,
     /// Rootnode to HirFileId cache
     root_to_file_cache: RefCell<FxHashMap<SyntaxNode, HirFileId>>,
-    /// HirFileId to Rootnode cache (this adds a layer over the database LRU cache to prevent
-    /// possibly frequent invalidation)
-    parse_cache: RefCell<FxHashMap<HirFileId, SyntaxNode>>,
     /// MacroCall to its expansion's MacroFileId cache
     macro_call_cache: RefCell<FxHashMap<InFile<ast::MacroCall>, MacroFileId>>,
 }
@@ -295,7 +292,6 @@ impl<'db> SemanticsImpl<'db> {
             db,
             s2d_cache: Default::default(),
             root_to_file_cache: Default::default(),
-            parse_cache: Default::default(),
             macro_call_cache: Default::default(),
         }
     }
@@ -307,9 +303,6 @@ impl<'db> SemanticsImpl<'db> {
     }
 
     pub fn parse_or_expand(&self, file_id: HirFileId) -> SyntaxNode {
-        if let Some(root) = self.parse_cache.borrow().get(&file_id) {
-            return root.clone();
-        }
         let node = self.db.parse_or_expand(file_id);
         self.cache(node.clone(), file_id);
         node
@@ -1490,9 +1483,8 @@ impl<'db> SemanticsImpl<'db> {
     fn cache(&self, root_node: SyntaxNode, file_id: HirFileId) {
         assert!(root_node.parent().is_none());
         let mut cache = self.root_to_file_cache.borrow_mut();
-        let prev = cache.insert(root_node.clone(), file_id);
+        let prev = cache.insert(root_node, file_id);
         assert!(prev.is_none() || prev == Some(file_id));
-        self.parse_cache.borrow_mut().insert(file_id, root_node);
     }
 
     pub fn assert_contains_node(&self, node: &SyntaxNode) {