diff options
Diffstat (limited to 'crates/ra_hir/src/query_definitions.rs')
-rw-r--r-- | crates/ra_hir/src/query_definitions.rs | 42 |
1 files changed, 4 insertions, 38 deletions
diff --git a/crates/ra_hir/src/query_definitions.rs b/crates/ra_hir/src/query_definitions.rs index bf9ac0dfb..734a98282 100644 --- a/crates/ra_hir/src/query_definitions.rs +++ b/crates/ra_hir/src/query_definitions.rs | |||
@@ -1,25 +1,14 @@ | |||
1 | use std::{ | 1 | use std::sync::Arc; |
2 | sync::Arc, | ||
3 | time::Instant, | ||
4 | }; | ||
5 | 2 | ||
6 | use rustc_hash::FxHashMap; | 3 | use ra_syntax::{ |
7 | use ra_syntax::{SyntaxNode, TreeArc}; | 4 | SyntaxNode, TreeArc, |
8 | use ra_db::{CrateId}; | 5 | }; |
9 | 6 | ||
10 | use crate::{ | 7 | use crate::{ |
11 | SourceFileItems, SourceItemId, HirFileId, | 8 | SourceFileItems, SourceItemId, HirFileId, |
12 | Function, FnScopes, Module, | ||
13 | db::HirDatabase, | 9 | db::HirDatabase, |
14 | nameres::{ItemMap, Resolver}, | ||
15 | }; | 10 | }; |
16 | 11 | ||
17 | pub(super) fn fn_scopes(db: &impl HirDatabase, func: Function) -> Arc<FnScopes> { | ||
18 | let body = db.body_hir(func); | ||
19 | let res = FnScopes::new(body); | ||
20 | Arc::new(res) | ||
21 | } | ||
22 | |||
23 | pub(super) fn file_items(db: &impl HirDatabase, file_id: HirFileId) -> Arc<SourceFileItems> { | 12 | pub(super) fn file_items(db: &impl HirDatabase, file_id: HirFileId) -> Arc<SourceFileItems> { |
24 | let source_file = db.hir_parse(file_id); | 13 | let source_file = db.hir_parse(file_id); |
25 | let res = SourceFileItems::new(file_id, &source_file); | 14 | let res = SourceFileItems::new(file_id, &source_file); |
@@ -35,26 +24,3 @@ pub(super) fn file_item( | |||
35 | .to_node(&source_file) | 24 | .to_node(&source_file) |
36 | .to_owned() | 25 | .to_owned() |
37 | } | 26 | } |
38 | |||
39 | pub(super) fn item_map(db: &impl HirDatabase, crate_id: CrateId) -> Arc<ItemMap> { | ||
40 | let start = Instant::now(); | ||
41 | let module_tree = db.module_tree(crate_id); | ||
42 | let input = module_tree | ||
43 | .modules() | ||
44 | .map(|module_id| { | ||
45 | ( | ||
46 | module_id, | ||
47 | db.lower_module_module(Module { | ||
48 | krate: crate_id, | ||
49 | module_id, | ||
50 | }), | ||
51 | ) | ||
52 | }) | ||
53 | .collect::<FxHashMap<_, _>>(); | ||
54 | |||
55 | let resolver = Resolver::new(db, &input, crate_id); | ||
56 | let res = resolver.resolve(); | ||
57 | let elapsed = start.elapsed(); | ||
58 | log::info!("item_map: {:?}", elapsed); | ||
59 | Arc::new(res) | ||
60 | } | ||