Compact lambda sets with structural derived ability impls

This commit is contained in:
Ayaz Hafiz 2022-06-24 11:20:39 -04:00
parent 9caa09b2c0
commit 445d922f3b
No known key found for this signature in database
GPG key ID: 0E2A37416A25EF58
6 changed files with 94 additions and 11 deletions

View file

@ -5,6 +5,7 @@ use std::sync::{Arc, RwLock};
use bumpalo::Bump;
use roc_can::abilities::AbilitiesStore;
use roc_can::module::ExposedByModule;
use roc_collections::MutMap;
use roc_derive::SharedDerivedModule;
use roc_error_macros::internal_error;
@ -169,6 +170,7 @@ pub fn unify(
subs: &mut Subs,
abilities: &AbilitiesView,
derived_module: &SharedDerivedModule,
exposed_by_module: &ExposedByModule,
left: Variable,
right: Variable,
) -> Result<(), UnificationFailed> {
@ -190,6 +192,7 @@ pub fn unify(
&mut pools,
lambda_sets_to_specialize,
&late_phase,
exposed_by_module,
derived_module,
);
// At this point we can't do anything with must-implement constraints, since we're no