Add a notion of "openness" tag extensions suitable only for size-polymorphism

This commit is contained in:
Ayaz Hafiz 2023-01-12 17:17:53 -06:00
parent 5f5d6a42d1
commit 1c93727822
No known key found for this signature in database
GPG key ID: 0E2A37416A25EF58
18 changed files with 302 additions and 233 deletions

View file

@ -904,7 +904,7 @@ fn deep_copy_type_vars<C: CopyEnv>(
})
}
TagUnion(tags, ext_var) => {
let new_ext_var = descend_var!(ext_var);
let new_ext_var = ext_var.map(|v| descend_var!(v));
for variables_slice_index in tags.variables() {
let variables_slice = env.source()[variables_slice_index];
@ -929,7 +929,7 @@ fn deep_copy_type_vars<C: CopyEnv>(
})
}
RecursiveTagUnion(rec_var, tags, ext_var) => {
let new_ext_var = descend_var!(ext_var);
let new_ext_var = ext_var.map(|v| descend_var!(v));
let new_rec_var = descend_var!(rec_var);
for variables_slice_index in tags.variables() {
@ -956,7 +956,7 @@ fn deep_copy_type_vars<C: CopyEnv>(
})
}
FunctionOrTagUnion(tag_names, symbols, ext_var) => {
let new_ext_var = descend_var!(ext_var);
let new_ext_var = ext_var.map(|v| descend_var!(v));
let new_tag_names = env.clone_tag_names(tag_names);
let new_symbols = env.clone_lambda_names(symbols);
perform_clone!(Structure(FunctionOrTagUnion(