diff options
Diffstat (limited to 'crates/hir/src/from_id.rs')
-rw-r--r-- | crates/hir/src/from_id.rs | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/crates/hir/src/from_id.rs b/crates/hir/src/from_id.rs index 265ef6d1f..dd3fcfe4a 100644 --- a/crates/hir/src/from_id.rs +++ b/crates/hir/src/from_id.rs | |||
@@ -41,6 +41,7 @@ from_id![ | |||
41 | (hir_def::FunctionId, crate::Function), | 41 | (hir_def::FunctionId, crate::Function), |
42 | (hir_def::ImplId, crate::ImplDef), | 42 | (hir_def::ImplId, crate::ImplDef), |
43 | (hir_def::TypeParamId, crate::TypeParam), | 43 | (hir_def::TypeParamId, crate::TypeParam), |
44 | (hir_def::LifetimeParamId, crate::LifetimeParam), | ||
44 | (hir_expand::MacroDefId, crate::MacroDef) | 45 | (hir_expand::MacroDefId, crate::MacroDef) |
45 | ]; | 46 | ]; |
46 | 47 | ||
@@ -154,6 +155,22 @@ impl From<GenericDef> for GenericDefId { | |||
154 | } | 155 | } |
155 | } | 156 | } |
156 | 157 | ||
158 | impl From<GenericDefId> for GenericDef { | ||
159 | fn from(def: GenericDefId) -> Self { | ||
160 | match def { | ||
161 | GenericDefId::FunctionId(it) => GenericDef::Function(it.into()), | ||
162 | GenericDefId::AdtId(it) => GenericDef::Adt(it.into()), | ||
163 | GenericDefId::TraitId(it) => GenericDef::Trait(it.into()), | ||
164 | GenericDefId::TypeAliasId(it) => GenericDef::TypeAlias(it.into()), | ||
165 | GenericDefId::ImplId(it) => GenericDef::ImplDef(it.into()), | ||
166 | GenericDefId::EnumVariantId(it) => { | ||
167 | GenericDef::EnumVariant(EnumVariant { parent: it.parent.into(), id: it.local_id }) | ||
168 | } | ||
169 | GenericDefId::ConstId(it) => GenericDef::Const(it.into()), | ||
170 | } | ||
171 | } | ||
172 | } | ||
173 | |||
157 | impl From<Adt> for GenericDefId { | 174 | impl From<Adt> for GenericDefId { |
158 | fn from(id: Adt) -> Self { | 175 | fn from(id: Adt) -> Self { |
159 | match id { | 176 | match id { |