mirror of
https://github.com/roc-lang/roc.git
synced 2025-09-28 06:14:46 +00:00
Add a notion of "openness" tag extensions suitable only for size-polymorphism
This commit is contained in:
parent
5f5d6a42d1
commit
1c93727822
18 changed files with 302 additions and 233 deletions
|
@ -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(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue