diff options
author | Aleksey Kladov <[email protected]> | 2019-10-30 10:10:38 +0000 |
---|---|---|
committer | Aleksey Kladov <[email protected]> | 2019-10-30 10:11:38 +0000 |
commit | c9cd6aa370667783292de3bc580e0503a409e453 (patch) | |
tree | 4662b1c76bed5e830c1dae9ee5dbf47520f41e1e /crates/ra_hir/src/db.rs | |
parent | a136cc0653d2b4133fb6387009cfdbaf3e2cf275 (diff) |
Move ids to hir_def crate
Diffstat (limited to 'crates/ra_hir/src/db.rs')
-rw-r--r-- | crates/ra_hir/src/db.rs | 28 |
1 files changed, 3 insertions, 25 deletions
diff --git a/crates/ra_hir/src/db.rs b/crates/ra_hir/src/db.rs index da8ae6ef4..8f6cb2da7 100644 --- a/crates/ra_hir/src/db.rs +++ b/crates/ra_hir/src/db.rs | |||
@@ -2,8 +2,8 @@ | |||
2 | 2 | ||
3 | use std::sync::Arc; | 3 | use std::sync::Arc; |
4 | 4 | ||
5 | use ra_db::{salsa, SourceDatabase}; | 5 | use ra_db::salsa; |
6 | use ra_syntax::{ast, SmolStr}; | 6 | use ra_syntax::SmolStr; |
7 | 7 | ||
8 | use crate::{ | 8 | use crate::{ |
9 | adt::{EnumData, StructData}, | 9 | adt::{EnumData, StructData}, |
@@ -23,34 +23,12 @@ use crate::{ | |||
23 | Static, Struct, StructField, Trait, TypeAlias, | 23 | Static, Struct, StructField, Trait, TypeAlias, |
24 | }; | 24 | }; |
25 | 25 | ||
26 | pub use hir_def::db::{InternDatabase, InternDatabaseStorage}; | ||
26 | pub use hir_expand::db::{ | 27 | pub use hir_expand::db::{ |
27 | AstDatabase, AstDatabaseStorage, AstIdMapQuery, MacroArgQuery, MacroDefQuery, MacroExpandQuery, | 28 | AstDatabase, AstDatabaseStorage, AstIdMapQuery, MacroArgQuery, MacroDefQuery, MacroExpandQuery, |
28 | ParseMacroQuery, | 29 | ParseMacroQuery, |
29 | }; | 30 | }; |
30 | 31 | ||
31 | /// We store all interned things in the single QueryGroup. | ||
32 | /// | ||
33 | /// This is done mainly to allow both "volatile" `AstDatabase` and "stable" | ||
34 | /// `DefDatabase` to access macros, without adding hard dependencies between the | ||
35 | /// two. | ||
36 | #[salsa::query_group(InternDatabaseStorage)] | ||
37 | pub trait InternDatabase: SourceDatabase { | ||
38 | #[salsa::interned] | ||
39 | fn intern_function(&self, loc: ids::ItemLoc<ast::FnDef>) -> ids::FunctionId; | ||
40 | #[salsa::interned] | ||
41 | fn intern_struct(&self, loc: ids::ItemLoc<ast::StructDef>) -> ids::StructId; | ||
42 | #[salsa::interned] | ||
43 | fn intern_enum(&self, loc: ids::ItemLoc<ast::EnumDef>) -> ids::EnumId; | ||
44 | #[salsa::interned] | ||
45 | fn intern_const(&self, loc: ids::ItemLoc<ast::ConstDef>) -> ids::ConstId; | ||
46 | #[salsa::interned] | ||
47 | fn intern_static(&self, loc: ids::ItemLoc<ast::StaticDef>) -> ids::StaticId; | ||
48 | #[salsa::interned] | ||
49 | fn intern_trait(&self, loc: ids::ItemLoc<ast::TraitDef>) -> ids::TraitId; | ||
50 | #[salsa::interned] | ||
51 | fn intern_type_alias(&self, loc: ids::ItemLoc<ast::TypeAliasDef>) -> ids::TypeAliasId; | ||
52 | } | ||
53 | |||
54 | // This database uses `AstDatabase` internally, | 32 | // This database uses `AstDatabase` internally, |
55 | #[salsa::query_group(DefDatabaseStorage)] | 33 | #[salsa::query_group(DefDatabaseStorage)] |
56 | #[salsa::requires(AstDatabase)] | 34 | #[salsa::requires(AstDatabase)] |