Impl HasAttrs for GenericParam

This commit is contained in:
Lukas Wirth 2021-01-02 00:42:07 +01:00
parent b4a7caedb0
commit ec448ca4b3
5 changed files with 78 additions and 11 deletions

View file

@ -6,13 +6,13 @@
use hir_def::{
expr::{LabelId, PatId},
item_scope::ItemInNs,
AdtId, AssocItemId, DefWithBodyId, EnumVariantId, FieldId, GenericDefId, ModuleDefId,
VariantId,
AdtId, AssocItemId, DefWithBodyId, EnumVariantId, FieldId, GenericDefId, GenericParamId,
ModuleDefId, VariantId,
};
use crate::{
Adt, AssocItem, DefWithBody, Field, GenericDef, Label, Local, MacroDef, ModuleDef, Variant,
VariantDef,
code_model::GenericParam, Adt, AssocItem, DefWithBody, Field, GenericDef, Label, Local,
MacroDef, ModuleDef, Variant, VariantDef,
};
macro_rules! from_id {
@ -68,6 +68,26 @@ impl From<Adt> for AdtId {
}
}
impl From<GenericParamId> for GenericParam {
fn from(id: GenericParamId) -> Self {
match id {
GenericParamId::TypeParamId(it) => GenericParam::TypeParam(it.into()),
GenericParamId::LifetimeParamId(it) => GenericParam::LifetimeParam(it.into()),
GenericParamId::ConstParamId(it) => GenericParam::ConstParam(it.into()),
}
}
}
impl From<GenericParam> for GenericParamId {
fn from(id: GenericParam) -> Self {
match id {
GenericParam::TypeParam(it) => GenericParamId::TypeParamId(it.id),
GenericParam::LifetimeParam(it) => GenericParamId::LifetimeParamId(it.id),
GenericParam::ConstParam(it) => GenericParamId::ConstParamId(it.id),
}
}
}
impl From<EnumVariantId> for Variant {
fn from(id: EnumVariantId) -> Self {
Variant { parent: id.parent.into(), id: id.local_id }