From a040fde3ae5e339199237f24a7461812e74475bf Mon Sep 17 00:00:00 2001 From: Florian Diebold Date: Mon, 16 Sep 2019 22:01:13 +0200 Subject: Remove TraitItem and ImplItem in favor of AssocItem --- crates/ra_hir/src/impl_block.rs | 28 ++++++---------------------- 1 file changed, 6 insertions(+), 22 deletions(-) (limited to 'crates/ra_hir/src/impl_block.rs') diff --git a/crates/ra_hir/src/impl_block.rs b/crates/ra_hir/src/impl_block.rs index d26a024ed..c463d351c 100644 --- a/crates/ra_hir/src/impl_block.rs +++ b/crates/ra_hir/src/impl_block.rs @@ -15,7 +15,7 @@ use crate::{ resolve::Resolver, ty::Ty, type_ref::TypeRef, - Const, Function, HasSource, HirFileId, Source, TraitRef, TypeAlias, + AssocItem, Const, Function, HasSource, HirFileId, Source, TraitRef, TypeAlias, }; #[derive(Debug, Default, PartialEq, Eq)] @@ -56,7 +56,7 @@ impl HasSource for ImplBlock { impl ImplBlock { pub(crate) fn containing( module_impl_blocks: Arc, - item: ImplItem, + item: AssocItem, ) -> Option { let impl_id = *module_impl_blocks.impls_by_def.get(&item)?; Some(ImplBlock { module: module_impl_blocks.module, impl_id }) @@ -91,7 +91,7 @@ impl ImplBlock { TraitRef::from_hir(db, &self.resolver(db), &self.target_trait(db)?, Some(target_ty)) } - pub fn items(&self, db: &impl DefDatabase) -> Vec { + pub fn items(&self, db: &impl DefDatabase) -> Vec { db.impls_in_module(self.module).impls[self.impl_id].items().to_vec() } @@ -113,7 +113,7 @@ impl ImplBlock { pub struct ImplData { target_trait: Option, target_type: TypeRef, - items: Vec, + items: Vec, negative: bool, } @@ -151,27 +151,11 @@ impl ImplData { &self.target_type } - pub fn items(&self) -> &[ImplItem] { + pub fn items(&self) -> &[AssocItem] { &self.items } } -#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] -//FIXME: rename to ImplDef? -pub enum ImplItem { - Method(Function), - Const(Const), - TypeAlias(TypeAlias), - // Existential -} -impl_froms!(ImplItem: Const, TypeAlias); - -impl From for ImplItem { - fn from(func: Function) -> ImplItem { - ImplItem::Method(func) - } -} - #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] pub struct ImplId(pub RawId); impl_arena_id!(ImplId); @@ -185,7 +169,7 @@ impl_arena_id!(ImplId); pub struct ModuleImplBlocks { pub(crate) module: Module, pub(crate) impls: Arena, - impls_by_def: FxHashMap, + impls_by_def: FxHashMap, } impl ModuleImplBlocks { -- cgit v1.2.3