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

@ -1,7 +1,7 @@
use roc_can::abilities::AbilitiesStore;
use roc_can::expr::PendingDerives;
use roc_collections::{VecMap, VecSet};
use roc_error_macros::{internal_error, todo_abilities};
use roc_error_macros::internal_error;
use roc_module::symbol::Symbol;
use roc_region::all::{Loc, Region};
use roc_solve_problem::{
@ -1238,9 +1238,6 @@ pub fn resolve_ability_specialization<R: AbilityResolver>(
roc_types::types::MemberImpl::Impl(spec_symbol) => {
Resolved::Specialization(spec_symbol)
}
roc_types::types::MemberImpl::Derived => {
todo_abilities!("get type from obligated opaque")
}
// TODO this is not correct. We can replace `Resolved` with `MemberImpl` entirely,
// which will make this simpler.
roc_types::types::MemberImpl::Error => Resolved::Specialization(Symbol::UNDERSCORE),

View file

@ -147,9 +147,6 @@ pub fn exposed_types_storage_subs(
stored_specialization_lambda_set_vars.insert(lset_var, imported_lset_var);
}
}
ResolvedImpl::Derived => {
// nothing to do
}
ResolvedImpl::Error => {
// nothing to do
}
@ -202,7 +199,6 @@ pub fn extract_module_owned_implementations(
);
ResolvedImpl::Impl(specialization.clone())
}
MemberImpl::Derived => ResolvedImpl::Derived,
MemberImpl::Error => ResolvedImpl::Error,
};

View file

@ -638,7 +638,7 @@ fn make_specialization_decision<P: Phase>(
// Doesn't specialize; an error will already be reported for this.
SpecializeDecision::Drop
}
Some(MemberImpl::Error | MemberImpl::Derived) => {
Some(MemberImpl::Error) => {
// TODO: probably not right, we may want to choose a derive decision!
SpecializeDecision::Specialize(Opaque(*opaque))
}
@ -743,7 +743,6 @@ fn get_specialization_lambda_set_ambient_function<P: Phase>(
.expect("lambda set region not resolved");
Ok(specialized_lambda_set)
}
MemberImpl::Derived => todo_abilities!(),
MemberImpl::Error => todo_abilities!(),
},
}