From 2d4dc22af8db8f9ebb5f2e95cd25c473494a4b70 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Tue, 8 Jan 2019 15:22:57 +0300 Subject: move enum to code_model_api --- crates/ra_hir/src/adt.rs | 28 +++------------------------- crates/ra_hir/src/code_model_api.rs | 24 ++++++++++++++++++++++-- crates/ra_hir/src/lib.rs | 3 +-- 3 files changed, 26 insertions(+), 29 deletions(-) (limited to 'crates') diff --git a/crates/ra_hir/src/adt.rs b/crates/ra_hir/src/adt.rs index 4b35c01b3..935f39959 100644 --- a/crates/ra_hir/src/adt.rs +++ b/crates/ra_hir/src/adt.rs @@ -1,11 +1,9 @@ use std::sync::Arc; -use ra_db::Cancelable; use ra_syntax::ast::{self, NameOwner, StructFlavor}; use crate::{ - DefId, Name, AsName, Struct, - db::HirDatabase, + DefId, Name, AsName, Struct, Enum, type_ref::TypeRef, }; @@ -13,10 +11,6 @@ impl Struct { pub(crate) fn new(def_id: DefId) -> Self { Struct { def_id } } - - pub(crate) fn struct_data(&self, db: &impl HirDatabase) -> Cancelable> { - Ok(db.struct_data(self.def_id)?) - } } #[derive(Debug, Clone, PartialEq, Eq)] @@ -42,32 +36,16 @@ impl StructData { } } -pub struct Enum { - def_id: DefId, -} - impl Enum { pub(crate) fn new(def_id: DefId) -> Self { Enum { def_id } } - - pub fn def_id(&self) -> DefId { - self.def_id - } - - pub fn name(&self, db: &impl HirDatabase) -> Cancelable> { - Ok(db.enum_data(self.def_id)?.name.clone()) - } - - pub fn variants(&self, db: &impl HirDatabase) -> Cancelable)>> { - Ok(db.enum_data(self.def_id)?.variants.clone()) - } } #[derive(Debug, Clone, PartialEq, Eq)] pub struct EnumData { - name: Option, - variants: Vec<(Name, Arc)>, + pub(crate) name: Option, + pub(crate) variants: Vec<(Name, Arc)>, } impl EnumData { diff --git a/crates/ra_hir/src/code_model_api.rs b/crates/ra_hir/src/code_model_api.rs index 12947da2d..43bd2003c 100644 --- a/crates/ra_hir/src/code_model_api.rs +++ b/crates/ra_hir/src/code_model_api.rs @@ -114,6 +114,7 @@ impl Module { } } +#[derive(Debug, Clone, PartialEq, Eq, Hash)] pub struct Struct { pub(crate) def_id: DefId, } @@ -124,10 +125,29 @@ impl Struct { } pub fn variant_data(&self, db: &impl HirDatabase) -> Cancelable> { - Ok(self.struct_data(db)?.variant_data.clone()) + Ok(db.struct_data(self.def_id)?.variant_data.clone()) } pub fn name(&self, db: &impl HirDatabase) -> Cancelable> { - Ok(self.struct_data(db)?.name.clone()) + Ok(db.struct_data(self.def_id)?.name.clone()) + } +} + +#[derive(Debug, Clone, PartialEq, Eq, Hash)] +pub struct Enum { + pub(crate) def_id: DefId, +} + +impl Enum { + pub fn def_id(&self) -> DefId { + self.def_id + } + + pub fn name(&self, db: &impl HirDatabase) -> Cancelable> { + Ok(db.enum_data(self.def_id)?.name.clone()) + } + + pub fn variants(&self, db: &impl HirDatabase) -> Cancelable)>> { + Ok(db.enum_data(self.def_id)?.variants.clone()) } } diff --git a/crates/ra_hir/src/lib.rs b/crates/ra_hir/src/lib.rs index 9b66f5bb7..8eff2aea5 100644 --- a/crates/ra_hir/src/lib.rs +++ b/crates/ra_hir/src/lib.rs @@ -50,7 +50,6 @@ pub use self::{ module_tree::ModuleId, nameres::{ItemMap, PerNs, Namespace, Resolution}, function::{Function, FnSignature, FnScopes, ScopesWithSyntaxMapping}, - adt::Enum, ty::Ty, impl_block::{ImplBlock, ImplItem}, }; @@ -60,7 +59,7 @@ pub use self::function::FnSignatureInfo; pub use self::code_model_api::{ Crate, CrateDependency, Module, ModuleSource, Problem, - Struct, + Struct, Enum, }; pub enum Def { -- cgit v1.2.3