diff options
Diffstat (limited to 'crates/ra_hir_def/src/db.rs')
-rw-r--r-- | crates/ra_hir_def/src/db.rs | 121 |
1 files changed, 0 insertions, 121 deletions
diff --git a/crates/ra_hir_def/src/db.rs b/crates/ra_hir_def/src/db.rs deleted file mode 100644 index 9c3ede2d7..000000000 --- a/crates/ra_hir_def/src/db.rs +++ /dev/null | |||
@@ -1,121 +0,0 @@ | |||
1 | //! Defines database & queries for name resolution. | ||
2 | use std::sync::Arc; | ||
3 | |||
4 | use hir_expand::{db::AstDatabase, HirFileId}; | ||
5 | use ra_db::{salsa, CrateId, SourceDatabase, Upcast}; | ||
6 | use ra_prof::profile; | ||
7 | use ra_syntax::SmolStr; | ||
8 | |||
9 | use crate::{ | ||
10 | adt::{EnumData, StructData}, | ||
11 | attr::Attrs, | ||
12 | body::{scope::ExprScopes, Body, BodySourceMap}, | ||
13 | data::{ConstData, FunctionData, ImplData, StaticData, TraitData, TypeAliasData}, | ||
14 | docs::Documentation, | ||
15 | generics::GenericParams, | ||
16 | import_map::ImportMap, | ||
17 | item_tree::ItemTree, | ||
18 | lang_item::{LangItemTarget, LangItems}, | ||
19 | nameres::CrateDefMap, | ||
20 | AttrDefId, ConstId, ConstLoc, DefWithBodyId, EnumId, EnumLoc, FunctionId, FunctionLoc, | ||
21 | GenericDefId, ImplId, ImplLoc, ModuleId, StaticId, StaticLoc, StructId, StructLoc, TraitId, | ||
22 | TraitLoc, TypeAliasId, TypeAliasLoc, UnionId, UnionLoc, | ||
23 | }; | ||
24 | |||
25 | #[salsa::query_group(InternDatabaseStorage)] | ||
26 | pub trait InternDatabase: SourceDatabase { | ||
27 | #[salsa::interned] | ||
28 | fn intern_function(&self, loc: FunctionLoc) -> FunctionId; | ||
29 | #[salsa::interned] | ||
30 | fn intern_struct(&self, loc: StructLoc) -> StructId; | ||
31 | #[salsa::interned] | ||
32 | fn intern_union(&self, loc: UnionLoc) -> UnionId; | ||
33 | #[salsa::interned] | ||
34 | fn intern_enum(&self, loc: EnumLoc) -> EnumId; | ||
35 | #[salsa::interned] | ||
36 | fn intern_const(&self, loc: ConstLoc) -> ConstId; | ||
37 | #[salsa::interned] | ||
38 | fn intern_static(&self, loc: StaticLoc) -> StaticId; | ||
39 | #[salsa::interned] | ||
40 | fn intern_trait(&self, loc: TraitLoc) -> TraitId; | ||
41 | #[salsa::interned] | ||
42 | fn intern_type_alias(&self, loc: TypeAliasLoc) -> TypeAliasId; | ||
43 | #[salsa::interned] | ||
44 | fn intern_impl(&self, loc: ImplLoc) -> ImplId; | ||
45 | } | ||
46 | |||
47 | #[salsa::query_group(DefDatabaseStorage)] | ||
48 | pub trait DefDatabase: InternDatabase + AstDatabase + Upcast<dyn AstDatabase> { | ||
49 | #[salsa::invoke(ItemTree::item_tree_query)] | ||
50 | fn item_tree(&self, file_id: HirFileId) -> Arc<ItemTree>; | ||
51 | |||
52 | #[salsa::invoke(crate_def_map_wait)] | ||
53 | #[salsa::transparent] | ||
54 | fn crate_def_map(&self, krate: CrateId) -> Arc<CrateDefMap>; | ||
55 | |||
56 | #[salsa::invoke(CrateDefMap::crate_def_map_query)] | ||
57 | fn crate_def_map_query(&self, krate: CrateId) -> Arc<CrateDefMap>; | ||
58 | |||
59 | #[salsa::invoke(StructData::struct_data_query)] | ||
60 | fn struct_data(&self, id: StructId) -> Arc<StructData>; | ||
61 | #[salsa::invoke(StructData::union_data_query)] | ||
62 | fn union_data(&self, id: UnionId) -> Arc<StructData>; | ||
63 | |||
64 | #[salsa::invoke(EnumData::enum_data_query)] | ||
65 | fn enum_data(&self, e: EnumId) -> Arc<EnumData>; | ||
66 | |||
67 | #[salsa::invoke(ImplData::impl_data_query)] | ||
68 | fn impl_data(&self, e: ImplId) -> Arc<ImplData>; | ||
69 | |||
70 | #[salsa::invoke(TraitData::trait_data_query)] | ||
71 | fn trait_data(&self, e: TraitId) -> Arc<TraitData>; | ||
72 | |||
73 | #[salsa::invoke(TypeAliasData::type_alias_data_query)] | ||
74 | fn type_alias_data(&self, e: TypeAliasId) -> Arc<TypeAliasData>; | ||
75 | |||
76 | #[salsa::invoke(FunctionData::fn_data_query)] | ||
77 | fn function_data(&self, func: FunctionId) -> Arc<FunctionData>; | ||
78 | |||
79 | #[salsa::invoke(ConstData::const_data_query)] | ||
80 | fn const_data(&self, konst: ConstId) -> Arc<ConstData>; | ||
81 | |||
82 | #[salsa::invoke(StaticData::static_data_query)] | ||
83 | fn static_data(&self, konst: StaticId) -> Arc<StaticData>; | ||
84 | |||
85 | #[salsa::invoke(Body::body_with_source_map_query)] | ||
86 | fn body_with_source_map(&self, def: DefWithBodyId) -> (Arc<Body>, Arc<BodySourceMap>); | ||
87 | |||
88 | #[salsa::invoke(Body::body_query)] | ||
89 | fn body(&self, def: DefWithBodyId) -> Arc<Body>; | ||
90 | |||
91 | #[salsa::invoke(ExprScopes::expr_scopes_query)] | ||
92 | fn expr_scopes(&self, def: DefWithBodyId) -> Arc<ExprScopes>; | ||
93 | |||
94 | #[salsa::invoke(GenericParams::generic_params_query)] | ||
95 | fn generic_params(&self, def: GenericDefId) -> Arc<GenericParams>; | ||
96 | |||
97 | #[salsa::invoke(Attrs::attrs_query)] | ||
98 | fn attrs(&self, def: AttrDefId) -> Attrs; | ||
99 | |||
100 | #[salsa::invoke(LangItems::module_lang_items_query)] | ||
101 | fn module_lang_items(&self, module: ModuleId) -> Option<Arc<LangItems>>; | ||
102 | |||
103 | #[salsa::invoke(LangItems::crate_lang_items_query)] | ||
104 | fn crate_lang_items(&self, krate: CrateId) -> Arc<LangItems>; | ||
105 | |||
106 | #[salsa::invoke(LangItems::lang_item_query)] | ||
107 | fn lang_item(&self, start_crate: CrateId, item: SmolStr) -> Option<LangItemTarget>; | ||
108 | |||
109 | // FIXME(https://github.com/rust-analyzer/rust-analyzer/issues/2148#issuecomment-550519102) | ||
110 | // Remove this query completely, in favor of `Attrs::docs` method | ||
111 | #[salsa::invoke(Documentation::documentation_query)] | ||
112 | fn documentation(&self, def: AttrDefId) -> Option<Documentation>; | ||
113 | |||
114 | #[salsa::invoke(ImportMap::import_map_query)] | ||
115 | fn import_map(&self, krate: CrateId) -> Arc<ImportMap>; | ||
116 | } | ||
117 | |||
118 | fn crate_def_map_wait(db: &impl DefDatabase, krate: CrateId) -> Arc<CrateDefMap> { | ||
119 | let _p = profile("crate_def_map:wait"); | ||
120 | db.crate_def_map_query(krate) | ||
121 | } | ||