Move ScopeDef

This commit is contained in:
Aleksey Kladov 2019-11-21 14:21:26 +03:00
parent 061e6c77b5
commit 1312c57d34
4 changed files with 31 additions and 31 deletions

View file

@ -19,7 +19,7 @@ use crate::{
code_model::Crate,
db::HirDatabase,
expr::{ExprScopes, PatId, ScopeId},
Adt, DefWithBody, GenericDef, ImplBlock, Local, MacroDef, ModuleDef, PerNs,
DefWithBody, GenericDef, Local, MacroDef, PerNs, ScopeDef,
};
#[derive(Debug, Clone, Default)]
@ -420,29 +420,6 @@ impl Resolver {
}
}
/// For IDE only
pub enum ScopeDef {
ModuleDef(ModuleDef),
MacroDef(MacroDef),
GenericParam(u32),
ImplSelfType(ImplBlock),
AdtSelfType(Adt),
Local(Local),
Unknown,
}
impl From<PerNs> for ScopeDef {
fn from(def: PerNs) -> Self {
def.take_types()
.or_else(|| def.take_values())
.map(|module_def_id| ScopeDef::ModuleDef(module_def_id.into()))
.or_else(|| {
def.get_macros().map(|macro_def_id| ScopeDef::MacroDef(macro_def_id.into()))
})
.unwrap_or(ScopeDef::Unknown)
}
}
impl Scope {
fn process_names(&self, db: &impl DefDatabase2, f: &mut dyn FnMut(Name, ScopeDef)) {
match self {