Initial implementation of tuples in type checking

This leaves in place a bunch of TODOs and likely many bugs - notably, I haven't tested codegen/layout at all here.
This commit is contained in:
Joshua Warner 2022-12-25 19:26:32 -08:00
parent d57cb50425
commit de828416bf
No known key found for this signature in database
GPG key ID: 89AD497003F93FDD
32 changed files with 1785 additions and 112 deletions

View file

@ -1087,7 +1087,8 @@ fn fix_values_captured_in_closure_expr(
| TypedHole { .. }
| RuntimeError(_)
| ZeroArgumentTag { .. }
| Accessor { .. } => {}
| RecordAccessor { .. }
| TupleAccessor { .. } => {}
List { loc_elems, .. } => {
for elem in loc_elems.iter_mut() {
@ -1181,7 +1182,7 @@ fn fix_values_captured_in_closure_expr(
}
Record { fields, .. }
| Update {
| RecordUpdate {
updates: fields, ..
} => {
for (_, field) in fields.iter_mut() {
@ -1193,7 +1194,17 @@ fn fix_values_captured_in_closure_expr(
}
}
Access { loc_expr, .. } => {
Tuple { elems, .. } => {
for (_var, expr) in elems.iter_mut() {
fix_values_captured_in_closure_expr(
&mut expr.value,
no_capture_symbols,
closure_captures,
);
}
}
RecordAccess { loc_expr, .. } | TupleAccess { loc_expr, .. } => {
fix_values_captured_in_closure_expr(
&mut loc_expr.value,
no_capture_symbols,