make resolver fields private

This commit is contained in:
Aleksey Kladov 2018-12-09 12:24:52 +03:00
parent 74fe581061
commit 8b9ff46b37
2 changed files with 22 additions and 12 deletions

View file

@ -200,17 +200,32 @@ impl ModuleItem {
}
pub(crate) struct Resolver<'a, DB> {
pub(crate) db: &'a DB,
pub(crate) input: &'a FxHashMap<ModuleId, Arc<InputModuleItems>>,
pub(crate) source_root: SourceRootId,
pub(crate) module_tree: Arc<ModuleTree>,
pub(crate) result: ItemMap,
db: &'a DB,
input: &'a FxHashMap<ModuleId, Arc<InputModuleItems>>,
source_root: SourceRootId,
module_tree: Arc<ModuleTree>,
result: ItemMap,
}
impl<'a, DB> Resolver<'a, DB>
where
DB: HirDatabase,
{
pub(crate) fn new(
db: &'a DB,
input: &'a FxHashMap<ModuleId, Arc<InputModuleItems>>,
source_root: SourceRootId,
module_tree: Arc<ModuleTree>,
) -> Resolver<'a, DB> {
Resolver {
db: db,
input: &input,
source_root,
module_tree,
result: ItemMap::default(),
}
}
pub(crate) fn resolve(mut self) -> Cancelable<ItemMap> {
for (&module_id, items) in self.input.iter() {
self.populate_module(module_id, items)

View file

@ -141,13 +141,8 @@ pub(super) fn item_map(
Ok((id, items))
})
.collect::<Cancelable<FxHashMap<_, _>>>()?;
let resolver = Resolver {
db: db,
input: &input,
source_root,
module_tree,
result: ItemMap::default(),
};
let resolver = Resolver::new(db, &input, source_root, module_tree);
let res = resolver.resolve()?;
let elapsed = start.elapsed();
log::info!("item_map: {:?}", elapsed);