From 36aad851383c7fd1ca5ffaa99ba8cc96b85378c1 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Wed, 21 Nov 2018 00:39:50 +0300 Subject: add item map query --- crates/ra_analysis/src/descriptors/module/mod.rs | 2 +- crates/ra_analysis/src/descriptors/module/nameres.rs | 18 ++++++++++++++---- 2 files changed, 15 insertions(+), 5 deletions(-) (limited to 'crates/ra_analysis/src/descriptors/module') diff --git a/crates/ra_analysis/src/descriptors/module/mod.rs b/crates/ra_analysis/src/descriptors/module/mod.rs index 2d0bfa64c..124926a40 100644 --- a/crates/ra_analysis/src/descriptors/module/mod.rs +++ b/crates/ra_analysis/src/descriptors/module/mod.rs @@ -1,6 +1,6 @@ pub(super) mod imp; mod scope; -mod nameres; +pub(super) mod nameres; use std::sync::Arc; diff --git a/crates/ra_analysis/src/descriptors/module/nameres.rs b/crates/ra_analysis/src/descriptors/module/nameres.rs index 058e64ad1..657e5bd1c 100644 --- a/crates/ra_analysis/src/descriptors/module/nameres.rs +++ b/crates/ra_analysis/src/descriptors/module/nameres.rs @@ -9,6 +9,7 @@ use ra_syntax::{ }; use crate::{ + Cancelable, loc2id::{DefId, DefLoc}, descriptors::{ DescriptorDatabase, @@ -45,12 +46,21 @@ enum PathKind { Crate, } -#[derive(Debug)] -struct ItemMap { +pub(crate) fn item_map( + db: &impl DescriptorDatabase, + source_root: SourceRootId, +) -> Cancelable> { + unimplemented!() +} + +/// Item map is the result of the name resolution. Item map contains, for each +/// module, the set of visible items. +#[derive(Debug, PartialEq, Eq)] +pub(crate) struct ItemMap { per_module: FxHashMap, } -#[derive(Debug, Default)] +#[derive(Debug, Default, PartialEq, Eq)] struct ModuleItems { items: FxHashMap, import_resolutions: FxHashMap, @@ -58,7 +68,7 @@ struct ModuleItems { /// Resolution is basically `DefId` atm, but it should account for stuff like /// multiple namespaces, ambiguity and errors. -#[derive(Debug, Clone)] +#[derive(Debug, Clone, PartialEq, Eq)] struct Resolution { /// None for unresolved def_id: Option, -- cgit v1.2.3