aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_analysis/src/descriptors/module/imp.rs
diff options
context:
space:
mode:
authorAleksey Kladov <[email protected]>2018-10-31 20:41:43 +0000
committerAleksey Kladov <[email protected]>2018-10-31 20:41:43 +0000
commit6be50f7d5de3737464853a589673375fc0cafa97 (patch)
tree2c6da7f3a1234c3f2fd3f330d2c9445953979598 /crates/ra_analysis/src/descriptors/module/imp.rs
parent857c1650efdb51650458f9ec1119adaa49b34371 (diff)
Reformat all
Diffstat (limited to 'crates/ra_analysis/src/descriptors/module/imp.rs')
-rw-r--r--crates/ra_analysis/src/descriptors/module/imp.rs33
1 files changed, 20 insertions, 13 deletions
diff --git a/crates/ra_analysis/src/descriptors/module/imp.rs b/crates/ra_analysis/src/descriptors/module/imp.rs
index dae3a356d..1c102f4e5 100644
--- a/crates/ra_analysis/src/descriptors/module/imp.rs
+++ b/crates/ra_analysis/src/descriptors/module/imp.rs
@@ -1,24 +1,25 @@
1use std::sync::Arc; 1use std::sync::Arc;
2 2
3use relative_path::RelativePathBuf;
4use rustc_hash::{FxHashMap, FxHashSet};
5use ra_syntax::{ 3use ra_syntax::{
6 SmolStr,
7 ast::{self, NameOwner}, 4 ast::{self, NameOwner},
5 SmolStr,
8}; 6};
7use relative_path::RelativePathBuf;
8use rustc_hash::{FxHashMap, FxHashSet};
9 9
10use crate::{ 10use crate::{
11 FileId, Cancelable, FileResolverImp, db, 11 db,
12 input::{SourceRoot, SourceRootId},
13 descriptors::DescriptorDatabase, 12 descriptors::DescriptorDatabase,
13 input::{SourceRoot, SourceRootId},
14 Cancelable, FileId, FileResolverImp,
14}; 15};
15 16
16use super::{ 17use super::{LinkData, LinkId, ModuleData, ModuleId, ModuleScope, ModuleTree, Problem};
17 ModuleData, ModuleTree, ModuleId, LinkId, LinkData, Problem, ModuleScope
18};
19
20 18
21pub(crate) fn submodules(db: &impl DescriptorDatabase, file_id: FileId) -> Cancelable<Arc<Vec<SmolStr>>> { 19pub(crate) fn submodules(
20 db: &impl DescriptorDatabase,
21 file_id: FileId,
22) -> Cancelable<Arc<Vec<SmolStr>>> {
22 db::check_canceled(db)?; 23 db::check_canceled(db)?;
23 let file = db.file_syntax(file_id); 24 let file = db.file_syntax(file_id);
24 let root = file.ast(); 25 let root = file.ast();
@@ -57,13 +58,11 @@ pub(crate) fn module_tree(
57 Ok(Arc::new(res)) 58 Ok(Arc::new(res))
58} 59}
59 60
60
61#[derive(Clone, Hash, PartialEq, Eq, Debug)] 61#[derive(Clone, Hash, PartialEq, Eq, Debug)]
62pub struct Submodule { 62pub struct Submodule {
63 pub name: SmolStr, 63 pub name: SmolStr,
64} 64}
65 65
66
67fn create_module_tree<'a>( 66fn create_module_tree<'a>(
68 db: &impl DescriptorDatabase, 67 db: &impl DescriptorDatabase,
69 source_root: SourceRootId, 68 source_root: SourceRootId,
@@ -82,7 +81,15 @@ fn create_module_tree<'a>(
82 continue; // TODO: use explicit crate_roots here 81 continue; // TODO: use explicit crate_roots here
83 } 82 }
84 assert!(!roots.contains_key(&file_id)); 83 assert!(!roots.contains_key(&file_id));
85 let module_id = build_subtree(db, &source_root, &mut tree, &mut visited, &mut roots, None, file_id)?; 84 let module_id = build_subtree(
85 db,
86 &source_root,
87 &mut tree,
88 &mut visited,
89 &mut roots,
90 None,
91 file_id,
92 )?;
86 roots.insert(file_id, module_id); 93 roots.insert(file_id, module_id);
87 } 94 }
88 Ok(tree) 95 Ok(tree)