Get rid of MemberImpl::Derived

We don't need this anymore, since derived members become Impls during
canonicalization now!
This commit is contained in:
Ayaz Hafiz 2022-10-18 15:09:34 -05:00
parent 1d885c4ab2
commit e75f3c3c79
No known key found for this signature in database
GPG key ID: 0E2A37416A25EF58
7 changed files with 6 additions and 25 deletions

View file

@ -127,7 +127,6 @@ pub struct ImplKey {
#[derive(Clone, Debug)]
pub enum ResolvedImpl {
Impl(MemberSpecializationInfo<Resolved>),
Derived,
Error,
}
@ -452,7 +451,7 @@ impl IAbilitiesStore<Resolved> {
Ok(())
}
MemberImpl::Derived | MemberImpl::Error => Err(MarkError::ImplIsNotCustom),
MemberImpl::Error => Err(MarkError::ImplIsNotCustom),
},
None => Err(MarkError::NoDeclaredImpl),
}
@ -498,7 +497,6 @@ impl IAbilitiesStore<Pending> {
self.import_specialization(specialization);
MemberImpl::Impl(specialization.symbol)
}
ResolvedImpl::Derived => MemberImpl::Derived,
ResolvedImpl::Error => MemberImpl::Error,
};
@ -957,14 +955,12 @@ mod serialize {
#[repr(C)]
enum SerMemberImpl {
Impl(Symbol),
Derived,
Error,
}
impl From<&MemberImpl> for SerMemberImpl {
fn from(k: &MemberImpl) -> Self {
match k {
MemberImpl::Impl(s) => Self::Impl(*s),
MemberImpl::Derived => Self::Derived,
MemberImpl::Error => Self::Error,
}
}
@ -973,7 +969,6 @@ mod serialize {
fn from(k: &SerMemberImpl) -> Self {
match k {
SerMemberImpl::Impl(s) => Self::Impl(*s),
SerMemberImpl::Derived => Self::Derived,
SerMemberImpl::Error => Self::Error,
}
}
@ -1134,14 +1129,12 @@ mod serialize {
#[repr(C)]
enum SerResolvedImpl {
Impl(SerMemberSpecInfo),
Derived,
Error,
}
impl SerResolvedImpl {
fn num_regions(&self) -> usize {
match self {
SerResolvedImpl::Impl(spec) => spec.1.len(),
SerResolvedImpl::Derived => 0,
SerResolvedImpl::Error => 0,
}
}
@ -1186,7 +1179,6 @@ mod serialize {
);
SerResolvedImpl::Impl(SerMemberSpecInfo(*symbol, regions, vars))
}
ResolvedImpl::Derived => SerResolvedImpl::Derived,
ResolvedImpl::Error => SerResolvedImpl::Error,
};
@ -1237,7 +1229,6 @@ mod serialize {
});
ResolvedImpl::Impl(spec_info)
}
SerResolvedImpl::Derived => ResolvedImpl::Derived,
SerResolvedImpl::Error => ResolvedImpl::Error,
};
@ -1310,7 +1301,7 @@ mod test {
store.register_declared_implementations(
Symbol::ATTR_ATTR,
[(Symbol::ARG_5, MemberImpl::Derived)],
[(Symbol::ARG_5, MemberImpl::Error)],
);
store