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

@ -708,13 +708,13 @@ trait DerivableVisitor {
for i in tags.variables() {
push_var_slice!(subs[i]);
}
stack.push(ext);
stack.push(ext.var());
}
}
FunctionOrTagUnion(_tag_name, _fn_name, ext) => {
let descend = Self::visit_function_or_tag_union(var)?;
if descend.0 {
stack.push(ext);
stack.push(ext.var());
}
}
RecursiveTagUnion(rec, tags, ext) => {
@ -724,7 +724,7 @@ trait DerivableVisitor {
for i in tags.variables() {
push_var_slice!(subs[i]);
}
stack.push(ext);
stack.push(ext.var());
}
}
EmptyRecord => Self::visit_empty_record(var)?,