Support OIOP for type aliases

This commit is contained in:
Ayaz Hafiz 2022-10-26 15:21:28 -05:00
parent 6ee2fb496d
commit debe6332c5
No known key found for this signature in database
GPG key ID: 0E2A37416A25EF58
21 changed files with 452 additions and 115 deletions

View file

@ -1,5 +1,5 @@
use crate::abilities::{AbilitiesStore, ImplKey, PendingAbilitiesStore, ResolvedImpl};
use crate::annotation::{canonicalize_annotation, ValueAnnotation};
use crate::annotation::{canonicalize_annotation, AnnotationFor};
use crate::def::{canonicalize_defs, Def};
use crate::effect_module::HostedGeneratedFunctions;
use crate::env::Env;
@ -221,6 +221,7 @@ impl GeneratedInfo {
effect_symbol,
Region::zero(),
vec![Loc::at_zero(AliasVar::unbound("a".into(), a_var))],
vec![],
actual,
AliasKind::Opaque,
);
@ -282,6 +283,7 @@ pub fn canonicalize_module_defs<'a>(
name,
alias.region,
alias.type_variables,
alias.infer_ext_in_output_variables,
alias.typ,
alias.kind,
);
@ -442,7 +444,7 @@ pub fn canonicalize_module_defs<'a>(
loc_ann.region,
var_store,
pending_abilities_in_scope,
ValueAnnotation(true),
AnnotationFor::Value,
);
ann.add_to(