diff options
Diffstat (limited to 'crates/ra_hir/src/code_model.rs')
-rw-r--r-- | crates/ra_hir/src/code_model.rs | 31 |
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)] | ||
1028 | pub enum AssocItem { | ||
1029 | Function(Function), | ||
1030 | Const(Const), | ||
1031 | TypeAlias(TypeAlias), | ||
1032 | } | ||
1033 | |||
1034 | impl 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 | |||
1044 | impl 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 | } | ||