about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2022-05-06 10:14:05 +0000
committerbors <bors@rust-lang.org>2022-05-06 10:14:05 +0000
commitdb1434b34f0cf11c54207d2bcf420547fb319a25 (patch)
treea063a2e24551d3231e91354fce02d8de16bdaca1
parent616796a2c0d8823055073b0109244aa43be9e5f5 (diff)
parent97cdf3eb0e766e375b04a0b9bc1184299e6f0404 (diff)
downloadrust-db1434b34f0cf11c54207d2bcf420547fb319a25.tar.gz
rust-db1434b34f0cf11c54207d2bcf420547fb319a25.zip
Auto merge of #12171 - lnicola:proc-macros-dont-invalidate-state, r=Veykril
fix: Try not to invalidate state when the proc macro preference didn't change

This appears to fix #12027, but I'm not sure.
-rw-r--r--crates/rust-analyzer/src/reload.rs11
1 files changed, 7 insertions, 4 deletions
diff --git a/crates/rust-analyzer/src/reload.rs b/crates/rust-analyzer/src/reload.rs
index c2a6a3fe301..c2a521bbf54 100644
--- a/crates/rust-analyzer/src/reload.rs
+++ b/crates/rust-analyzer/src/reload.rs
@@ -55,10 +55,13 @@ impl GlobalState {
             self.reload_flycheck();
         }
 
-        // Apply experimental feature flags.
-        self.analysis_host
-            .raw_database_mut()
-            .set_enable_proc_attr_macros(self.config.expand_proc_attr_macros());
+        if self.analysis_host.raw_database().enable_proc_attr_macros()
+            != self.config.expand_proc_attr_macros()
+        {
+            self.analysis_host
+                .raw_database_mut()
+                .set_enable_proc_attr_macros(self.config.expand_proc_attr_macros());
+        }
     }
 
     pub(crate) fn current_status(&self) -> lsp_ext::ServerStatusParams {