diff options
Diffstat (limited to 'crates/ra_hir_def/src/db.rs')
-rw-r--r-- | crates/ra_hir_def/src/db.rs | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/crates/ra_hir_def/src/db.rs b/crates/ra_hir_def/src/db.rs index 348aca07f..844f8bbe8 100644 --- a/crates/ra_hir_def/src/db.rs +++ b/crates/ra_hir_def/src/db.rs | |||
@@ -8,30 +8,32 @@ use ra_syntax::ast; | |||
8 | use crate::{ | 8 | use crate::{ |
9 | adt::{EnumData, StructData}, | 9 | adt::{EnumData, StructData}, |
10 | body::{scope::ExprScopes, Body, BodySourceMap}, | 10 | body::{scope::ExprScopes, Body, BodySourceMap}, |
11 | imp::ImplData, | 11 | generics::GenericParams, |
12 | impls::ImplData, | ||
12 | nameres::{ | 13 | nameres::{ |
13 | raw::{ImportSourceMap, RawItems}, | 14 | raw::{ImportSourceMap, RawItems}, |
14 | CrateDefMap, | 15 | CrateDefMap, |
15 | }, | 16 | }, |
16 | DefWithBodyId, EnumId, ImplId, ItemLoc, StructOrUnionId, | 17 | traits::TraitData, |
18 | DefWithBodyId, EnumId, GenericDefId, ImplId, ItemLoc, StructOrUnionId, TraitId, | ||
17 | }; | 19 | }; |
18 | 20 | ||
19 | #[salsa::query_group(InternDatabaseStorage)] | 21 | #[salsa::query_group(InternDatabaseStorage)] |
20 | pub trait InternDatabase: SourceDatabase { | 22 | pub trait InternDatabase: SourceDatabase { |
21 | #[salsa::interned] | 23 | #[salsa::interned] |
22 | fn intern_function(&self, loc: ItemLoc<ast::FnDef>) -> crate::FunctionId; | 24 | fn intern_function(&self, loc: crate::FunctionLoc) -> crate::FunctionId; |
23 | #[salsa::interned] | 25 | #[salsa::interned] |
24 | fn intern_struct_or_union(&self, loc: ItemLoc<ast::StructDef>) -> crate::StructOrUnionId; | 26 | fn intern_struct_or_union(&self, loc: ItemLoc<ast::StructDef>) -> crate::StructOrUnionId; |
25 | #[salsa::interned] | 27 | #[salsa::interned] |
26 | fn intern_enum(&self, loc: ItemLoc<ast::EnumDef>) -> crate::EnumId; | 28 | fn intern_enum(&self, loc: ItemLoc<ast::EnumDef>) -> crate::EnumId; |
27 | #[salsa::interned] | 29 | #[salsa::interned] |
28 | fn intern_const(&self, loc: ItemLoc<ast::ConstDef>) -> crate::ConstId; | 30 | fn intern_const(&self, loc: crate::ConstLoc) -> crate::ConstId; |
29 | #[salsa::interned] | 31 | #[salsa::interned] |
30 | fn intern_static(&self, loc: ItemLoc<ast::StaticDef>) -> crate::StaticId; | 32 | fn intern_static(&self, loc: ItemLoc<ast::StaticDef>) -> crate::StaticId; |
31 | #[salsa::interned] | 33 | #[salsa::interned] |
32 | fn intern_trait(&self, loc: ItemLoc<ast::TraitDef>) -> crate::TraitId; | 34 | fn intern_trait(&self, loc: ItemLoc<ast::TraitDef>) -> crate::TraitId; |
33 | #[salsa::interned] | 35 | #[salsa::interned] |
34 | fn intern_type_alias(&self, loc: ItemLoc<ast::TypeAliasDef>) -> crate::TypeAliasId; | 36 | fn intern_type_alias(&self, loc: crate::TypeAliasLoc) -> crate::TypeAliasId; |
35 | #[salsa::interned] | 37 | #[salsa::interned] |
36 | fn intern_impl(&self, loc: ItemLoc<ast::ImplBlock>) -> crate::ImplId; | 38 | fn intern_impl(&self, loc: ItemLoc<ast::ImplBlock>) -> crate::ImplId; |
37 | } | 39 | } |
@@ -59,6 +61,9 @@ pub trait DefDatabase2: InternDatabase + AstDatabase { | |||
59 | #[salsa::invoke(ImplData::impl_data_query)] | 61 | #[salsa::invoke(ImplData::impl_data_query)] |
60 | fn impl_data(&self, e: ImplId) -> Arc<ImplData>; | 62 | fn impl_data(&self, e: ImplId) -> Arc<ImplData>; |
61 | 63 | ||
64 | #[salsa::invoke(TraitData::trait_data_query)] | ||
65 | fn trait_data(&self, e: TraitId) -> Arc<TraitData>; | ||
66 | |||
62 | #[salsa::invoke(Body::body_with_source_map_query)] | 67 | #[salsa::invoke(Body::body_with_source_map_query)] |
63 | fn body_with_source_map(&self, def: DefWithBodyId) -> (Arc<Body>, Arc<BodySourceMap>); | 68 | fn body_with_source_map(&self, def: DefWithBodyId) -> (Arc<Body>, Arc<BodySourceMap>); |
64 | 69 | ||
@@ -67,4 +72,7 @@ pub trait DefDatabase2: InternDatabase + AstDatabase { | |||
67 | 72 | ||
68 | #[salsa::invoke(ExprScopes::expr_scopes_query)] | 73 | #[salsa::invoke(ExprScopes::expr_scopes_query)] |
69 | fn expr_scopes(&self, def: DefWithBodyId) -> Arc<ExprScopes>; | 74 | fn expr_scopes(&self, def: DefWithBodyId) -> Arc<ExprScopes>; |
75 | |||
76 | #[salsa::invoke(GenericParams::generic_params_query)] | ||
77 | fn generic_params(&self, def: GenericDefId) -> Arc<GenericParams>; | ||
70 | } | 78 | } |