From 733383446fc229a35d4432d14c295c5a01e5a87f Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Sun, 6 Jan 2019 17:44:50 +0300 Subject: move submodule computationt to module_tree --- crates/ra_hir/src/query_definitions.rs | 54 ++-------------------------------- 1 file changed, 3 insertions(+), 51 deletions(-) (limited to 'crates/ra_hir/src/query_definitions.rs') diff --git a/crates/ra_hir/src/query_definitions.rs b/crates/ra_hir/src/query_definitions.rs index b17c00e26..f4b380022 100644 --- a/crates/ra_hir/src/query_definitions.rs +++ b/crates/ra_hir/src/query_definitions.rs @@ -6,16 +6,16 @@ use std::{ use rustc_hash::FxHashMap; use ra_syntax::{ AstNode, SyntaxNode, - ast::{self, NameOwner, ModuleItemOwner} + ast::{self, ModuleItemOwner} }; use ra_db::{SourceRootId, Cancelable,}; use crate::{ - SourceFileItems, SourceItemId, DefKind, DefId, Name, AsName, HirFileId, + SourceFileItems, SourceItemId, DefKind, DefId, HirFileId, MacroCallLoc, db::HirDatabase, function::FnScopes, - module_tree::{ModuleId, Submodule, ModuleSource, ModuleSourceNode}, + module_tree::{ModuleId, ModuleSourceNode}, nameres::{InputModuleItems, ItemMap, Resolver}, adt::{StructData, EnumData}, }; @@ -58,54 +58,6 @@ pub(super) fn file_item(db: &impl HirDatabase, source_item_id: SourceItemId) -> } } -pub(crate) fn submodules( - db: &impl HirDatabase, - source: ModuleSource, -) -> Cancelable>> { - db.check_canceled()?; - let file_id = source.file_id(); - let submodules = match source.resolve(db) { - ModuleSourceNode::SourceFile(it) => collect_submodules(db, file_id, it.borrowed()), - ModuleSourceNode::Module(it) => it - .borrowed() - .item_list() - .map(|it| collect_submodules(db, file_id, it)) - .unwrap_or_else(Vec::new), - }; - return Ok(Arc::new(submodules)); - - fn collect_submodules<'a>( - db: &impl HirDatabase, - file_id: HirFileId, - root: impl ast::ModuleItemOwner<'a>, - ) -> Vec { - modules(root) - .map(|(name, m)| { - if m.has_semi() { - Submodule::Declaration(name) - } else { - let src = ModuleSource::new_inline(db, file_id, m); - Submodule::Definition(name, src) - } - }) - .collect() - } -} - -pub(crate) fn modules<'a>( - root: impl ast::ModuleItemOwner<'a>, -) -> impl Iterator)> { - root.items() - .filter_map(|item| match item { - ast::ModuleItem::Module(m) => Some(m), - _ => None, - }) - .filter_map(|module| { - let name = module.name()?.as_name(); - Some((name, module)) - }) -} - pub(super) fn input_module_items( db: &impl HirDatabase, source_root_id: SourceRootId, -- cgit v1.2.3