diff options
author | Jonas Schievink <[email protected]> | 2021-06-03 15:11:20 +0100 |
---|---|---|
committer | Jonas Schievink <[email protected]> | 2021-06-03 17:09:21 +0100 |
commit | 9fdb8f90376c02ec2a267cf9eb3bdb7b6027e1e6 (patch) | |
tree | b816f97fd66df5bb827d7e2456b6a492a7199d34 /crates/hir_def | |
parent | e5a2c6596ddd11b0d57042224ac7c1d7691ec33b (diff) |
Make it opt-in
Diffstat (limited to 'crates/hir_def')
-rw-r--r-- | crates/hir_def/src/db.rs | 3 | ||||
-rw-r--r-- | crates/hir_def/src/nameres/collector.rs | 4 | ||||
-rw-r--r-- | crates/hir_def/src/test_db.rs | 9 |
3 files changed, 15 insertions, 1 deletions
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 { | |||
51 | 51 | ||
52 | #[salsa::query_group(DefDatabaseStorage)] | 52 | #[salsa::query_group(DefDatabaseStorage)] |
53 | pub trait DefDatabase: InternDatabase + AstDatabase + Upcast<dyn AstDatabase> { | 53 | pub trait DefDatabase: InternDatabase + AstDatabase + Upcast<dyn AstDatabase> { |
54 | #[salsa::input] | ||
55 | fn enable_proc_attr_macros(&self) -> bool; | ||
56 | |||
54 | #[salsa::invoke(ItemTree::file_item_tree_query)] | 57 | #[salsa::invoke(ItemTree::file_item_tree_query)] |
55 | fn file_item_tree(&self, file_id: HirFileId) -> Arc<ItemTree>; | 58 | fn file_item_tree(&self, file_id: HirFileId) -> Arc<ItemTree>; |
56 | 59 | ||
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<'_> { | |||
1067 | } | 1067 | } |
1068 | } | 1068 | } |
1069 | 1069 | ||
1070 | if !self.db.enable_proc_attr_macros() { | ||
1071 | return true; | ||
1072 | } | ||
1073 | |||
1070 | // Not resolved to a derive helper, so try to resolve as a macro. | 1074 | // Not resolved to a derive helper, so try to resolve as a macro. |
1071 | match attr_macro_as_call_id( | 1075 | match attr_macro_as_call_id( |
1072 | ast_id, | 1076 | 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::{ | |||
30 | crate::db::InternDatabaseStorage, | 30 | crate::db::InternDatabaseStorage, |
31 | crate::db::DefDatabaseStorage | 31 | crate::db::DefDatabaseStorage |
32 | )] | 32 | )] |
33 | #[derive(Default)] | ||
34 | pub(crate) struct TestDB { | 33 | pub(crate) struct TestDB { |
35 | storage: salsa::Storage<TestDB>, | 34 | storage: salsa::Storage<TestDB>, |
36 | events: Mutex<Option<Vec<salsa::Event>>>, | 35 | events: Mutex<Option<Vec<salsa::Event>>>, |
37 | } | 36 | } |
38 | 37 | ||
38 | impl Default for TestDB { | ||
39 | fn default() -> Self { | ||
40 | let mut this = Self { storage: Default::default(), events: Default::default() }; | ||
41 | this.set_enable_proc_attr_macros(true); | ||
42 | this | ||
43 | } | ||
44 | } | ||
45 | |||
39 | impl Upcast<dyn AstDatabase> for TestDB { | 46 | impl Upcast<dyn AstDatabase> for TestDB { |
40 | fn upcast(&self) -> &(dyn AstDatabase + 'static) { | 47 | fn upcast(&self) -> &(dyn AstDatabase + 'static) { |
41 | &*self | 48 | &*self |