aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/code_model.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_hir/src/code_model.rs')
-rw-r--r--crates/ra_hir/src/code_model.rs31
1 files changed, 31 insertions, 0 deletions
diff --git a/crates/ra_hir/src/code_model.rs b/crates/ra_hir/src/code_model.rs
index 84e15385c..892208c1a 100644
--- a/crates/ra_hir/src/code_model.rs
+++ b/crates/ra_hir/src/code_model.rs
@@ -749,6 +749,10 @@ impl Const {
749 db.const_data(self) 749 db.const_data(self)
750 } 750 }
751 751
752 pub fn name(&self, db: &impl HirDatabase) -> Option<Name> {
753 self.data(db).name().cloned()
754 }
755
752 pub fn infer(self, db: &impl HirDatabase) -> Arc<InferenceResult> { 756 pub fn infer(self, db: &impl HirDatabase) -> Arc<InferenceResult> {
753 db.infer(self.into()) 757 db.infer(self.into())
754 } 758 }
@@ -1019,3 +1023,30 @@ impl Container {
1019 } 1023 }
1020 } 1024 }
1021} 1025}
1026
1027#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
1028pub enum AssocItem {
1029 Function(Function),
1030 Const(Const),
1031 TypeAlias(TypeAlias),
1032}
1033
1034impl From<TraitItem> for AssocItem {
1035 fn from(t: TraitItem) -> Self {
1036 match t {
1037 TraitItem::Function(f) => AssocItem::Function(f),
1038 TraitItem::Const(c) => AssocItem::Const(c),
1039 TraitItem::TypeAlias(t) => AssocItem::TypeAlias(t),
1040 }
1041 }
1042}
1043
1044impl From<crate::ImplItem> for AssocItem {
1045 fn from(i: crate::ImplItem) -> Self {
1046 match i {
1047 crate::ImplItem::Method(f) => AssocItem::Function(f),
1048 crate::ImplItem::Const(c) => AssocItem::Const(c),
1049 crate::ImplItem::TypeAlias(t) => AssocItem::TypeAlias(t),
1050 }
1051 }
1052}