From 9fdb8f90376c02ec2a267cf9eb3bdb7b6027e1e6 Mon Sep 17 00:00:00 2001 From: Jonas Schievink Date: Thu, 3 Jun 2021 16:11:20 +0200 Subject: Make it opt-in --- crates/hir_def/src/db.rs | 3 +++ crates/hir_def/src/nameres/collector.rs | 4 ++++ crates/hir_def/src/test_db.rs | 9 ++++++++- 3 files changed, 15 insertions(+), 1 deletion(-) (limited to 'crates/hir_def') diff --git a/crates/hir_def/src/db.rs b/crates/hir_def/src/db.rs index 7eadc8e0d..c977971cd 100644 --- a/crates/hir_def/src/db.rs +++ b/crates/hir_def/src/db.rs @@ -51,6 +51,9 @@ pub trait InternDatabase: SourceDatabase { #[salsa::query_group(DefDatabaseStorage)] pub trait DefDatabase: InternDatabase + AstDatabase + Upcast { + #[salsa::input] + fn enable_proc_attr_macros(&self) -> bool; + #[salsa::invoke(ItemTree::file_item_tree_query)] fn file_item_tree(&self, file_id: HirFileId) -> Arc; diff --git a/crates/hir_def/src/nameres/collector.rs b/crates/hir_def/src/nameres/collector.rs index 874a4ebb1..b2ce739bd 100644 --- a/crates/hir_def/src/nameres/collector.rs +++ b/crates/hir_def/src/nameres/collector.rs @@ -1067,6 +1067,10 @@ impl DefCollector<'_> { } } + if !self.db.enable_proc_attr_macros() { + return true; + } + // Not resolved to a derive helper, so try to resolve as a macro. match attr_macro_as_call_id( ast_id, diff --git a/crates/hir_def/src/test_db.rs b/crates/hir_def/src/test_db.rs index e840fe5e8..b20b066e2 100644 --- a/crates/hir_def/src/test_db.rs +++ b/crates/hir_def/src/test_db.rs @@ -30,12 +30,19 @@ use crate::{ crate::db::InternDatabaseStorage, crate::db::DefDatabaseStorage )] -#[derive(Default)] pub(crate) struct TestDB { storage: salsa::Storage, events: Mutex>>, } +impl Default for TestDB { + fn default() -> Self { + let mut this = Self { storage: Default::default(), events: Default::default() }; + this.set_enable_proc_attr_macros(true); + this + } +} + impl Upcast for TestDB { fn upcast(&self) -> &(dyn AstDatabase + 'static) { &*self -- cgit v1.2.3