diff options
author | Aleksey Kladov <[email protected]> | 2018-11-27 20:03:08 +0000 |
---|---|---|
committer | Aleksey Kladov <[email protected]> | 2018-11-27 20:03:08 +0000 |
commit | f14902f67bbc5f68cb700b6b929b269d3d51a4a9 (patch) | |
tree | 79db5df67fc5fbc34fb61c5bfc2ce038e4198fc9 /crates/ra_analysis/src/hir/db.rs | |
parent | 109a7f3717612c58c73c5c153b632385b922fc9d (diff) |
move hir db
Diffstat (limited to 'crates/ra_analysis/src/hir/db.rs')
-rw-r--r-- | crates/ra_analysis/src/hir/db.rs | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/crates/ra_analysis/src/hir/db.rs b/crates/ra_analysis/src/hir/db.rs new file mode 100644 index 000000000..3cdf8e6d6 --- /dev/null +++ b/crates/ra_analysis/src/hir/db.rs | |||
@@ -0,0 +1,63 @@ | |||
1 | use std::sync::Arc; | ||
2 | |||
3 | use ra_syntax::{ | ||
4 | SyntaxNode, | ||
5 | ast::FnDefNode, | ||
6 | }; | ||
7 | |||
8 | use crate::{ | ||
9 | FileId, | ||
10 | db::SyntaxDatabase, | ||
11 | hir::function::{FnId, FnScopes}, | ||
12 | hir::module::{ | ||
13 | ModuleId, ModuleTree, ModuleSource, | ||
14 | nameres::{ItemMap, InputModuleItems, FileItems, FileItemId} | ||
15 | }, | ||
16 | input::SourceRootId, | ||
17 | loc2id::{IdDatabase}, | ||
18 | Cancelable, | ||
19 | }; | ||
20 | |||
21 | salsa::query_group! { | ||
22 | pub(crate) trait HirDatabase: SyntaxDatabase + IdDatabase { | ||
23 | fn fn_scopes(fn_id: FnId) -> Arc<FnScopes> { | ||
24 | type FnScopesQuery; | ||
25 | use fn crate::hir::function::imp::fn_scopes; | ||
26 | } | ||
27 | |||
28 | fn _file_items(file_id: FileId) -> Arc<FileItems> { | ||
29 | type FileItemsQuery; | ||
30 | storage dependencies; | ||
31 | use fn crate::hir::module::nameres::file_items; | ||
32 | } | ||
33 | |||
34 | fn _file_item(file_id: FileId, file_item_id: FileItemId) -> SyntaxNode { | ||
35 | type FileItemQuery; | ||
36 | storage dependencies; | ||
37 | use fn crate::hir::module::nameres::file_item; | ||
38 | } | ||
39 | |||
40 | fn _input_module_items(source_root_id: SourceRootId, module_id: ModuleId) -> Cancelable<Arc<InputModuleItems>> { | ||
41 | type InputModuleItemsQuery; | ||
42 | use fn crate::hir::module::nameres::input_module_items; | ||
43 | } | ||
44 | fn _item_map(source_root_id: SourceRootId) -> Cancelable<Arc<ItemMap>> { | ||
45 | type ItemMapQuery; | ||
46 | use fn crate::hir::module::nameres::item_map; | ||
47 | } | ||
48 | fn _module_tree(source_root_id: SourceRootId) -> Cancelable<Arc<ModuleTree>> { | ||
49 | type ModuleTreeQuery; | ||
50 | use fn crate::hir::module::imp::module_tree; | ||
51 | } | ||
52 | fn _fn_syntax(fn_id: FnId) -> FnDefNode { | ||
53 | type FnSyntaxQuery; | ||
54 | // Don't retain syntax trees in memory | ||
55 | storage dependencies; | ||
56 | use fn crate::hir::function::imp::fn_syntax; | ||
57 | } | ||
58 | fn _submodules(source: ModuleSource) -> Cancelable<Arc<Vec<crate::hir::module::imp::Submodule>>> { | ||
59 | type SubmodulesQuery; | ||
60 | use fn crate::hir::module::imp::submodules; | ||
61 | } | ||
62 | } | ||
63 | } | ||