Use ImplKey in abilities store public API

This commit is contained in:
Ayaz Hafiz 2022-07-25 12:00:54 -04:00
parent 923341ec95
commit 28c1a4cb95
No known key found for this signature in database
GPG key ID: 0E2A37416A25EF58
6 changed files with 48 additions and 50 deletions

View file

@ -394,7 +394,10 @@ impl ObligationCache<'_> {
for &member in members_of_ability {
if self
.abilities_store
.get_implementation(member, opaque)
.get_implementation(roc_can::abilities::ImplKey {
opaque,
ability_member: ability,
})
.is_none()
{
let root_data = self.abilities_store.member_def(member).unwrap();
@ -671,7 +674,12 @@ pub fn resolve_ability_specialization(
let resolved = match obligated {
Obligated::Opaque(symbol) => {
match abilities_store.get_implementation(ability_member, symbol)? {
let impl_key = roc_can::abilities::ImplKey {
opaque: symbol,
ability_member,
};
match abilities_store.get_implementation(impl_key)? {
roc_types::types::MemberImpl::Impl(spec_symbol) => {
Resolved::Specialization(*spec_symbol)
}