use get_content_without_compacting more

This commit is contained in:
Folkert 2021-07-30 22:15:17 +02:00
parent 4be163fc98
commit 35404bd25f
14 changed files with 203 additions and 209 deletions

View file

@ -324,9 +324,9 @@ fn jit_to_ast_help<'a>(
todo!("print recursive tag unions in the REPL")
}
Content::Alias(_, _, actual) => {
let content = env.subs.get_without_compacting(*actual).content;
let content = env.subs.get_content_without_compacting(*actual);
jit_to_ast_help(env, lib, main_fn_name, layout, &content)
jit_to_ast_help(env, lib, main_fn_name, layout, content)
}
other => unreachable!("Weird content for Union layout: {:?}", other),
}
@ -468,7 +468,7 @@ fn list_to_ast<'a>(
let elem_var = *vars.first().unwrap();
env.subs.get_without_compacting(elem_var).content
env.subs.get_content_without_compacting(elem_var)
}
other => {
unreachable!(
@ -486,7 +486,7 @@ fn list_to_ast<'a>(
let offset_bytes = index * elem_size;
let elem_ptr = unsafe { ptr.add(offset_bytes) };
let loc_expr = &*arena.alloc(Located {
value: ptr_to_ast(env, elem_ptr, elem_layout, &elem_content),
value: ptr_to_ast(env, elem_ptr, elem_layout, elem_content),
region: Region::zero(),
});
@ -539,8 +539,8 @@ where
let mut field_ptr = ptr as *const u8;
for (var, layout) in sequence {
let content = subs.get_without_compacting(var).content;
let expr = ptr_to_ast(env, field_ptr, layout, &content);
let content = subs.get_content_without_compacting(var);
let expr = ptr_to_ast(env, field_ptr, layout, content);
let loc_expr = Located::at_zero(expr);
output.push(&*arena.alloc(loc_expr));
@ -577,10 +577,10 @@ fn struct_to_ast<'a>(
// this is a 1-field wrapper record around another record or 1-tag tag union
let (label, field) = sorted_fields.pop().unwrap();
let inner_content = env.subs.get_without_compacting(field.into_inner()).content;
let inner_content = env.subs.get_content_without_compacting(field.into_inner());
let loc_expr = &*arena.alloc(Located {
value: ptr_to_ast(env, ptr, &Layout::Struct(field_layouts), &inner_content),
value: ptr_to_ast(env, ptr, &Layout::Struct(field_layouts), inner_content),
region: Region::zero(),
});
@ -606,9 +606,9 @@ fn struct_to_ast<'a>(
let mut field_ptr = ptr;
for ((label, field), field_layout) in sorted_fields.iter().zip(field_layouts.iter()) {
let content = subs.get_without_compacting(*field.as_inner()).content;
let content = subs.get_content_without_compacting(*field.as_inner());
let loc_expr = &*arena.alloc(Located {
value: ptr_to_ast(env, field_ptr, field_layout, &content),
value: ptr_to_ast(env, field_ptr, field_layout, content),
region: Region::zero(),
});
@ -659,9 +659,9 @@ fn bool_to_ast<'a>(env: &Env<'a, '_>, value: bool, content: &Content) -> Expr<'a
// and/or records (e.g. { a: { b: { c: True } } }),
// so we need to do this recursively on the field type.
let field_var = *field.as_inner();
let field_content = env.subs.get_without_compacting(field_var).content;
let field_content = env.subs.get_content_without_compacting(field_var);
let loc_expr = Located {
value: bool_to_ast(env, value, &field_content),
value: bool_to_ast(env, value, field_content),
region: Region::zero(),
};
@ -701,10 +701,10 @@ fn bool_to_ast<'a>(env: &Env<'a, '_>, value: bool, content: &Content) -> Expr<'a
debug_assert_eq!(payload_vars.len(), 1);
let var = *payload_vars.iter().next().unwrap();
let content = env.subs.get_without_compacting(var).content;
let content = env.subs.get_content_without_compacting(var);
let loc_payload = &*arena.alloc(Located {
value: bool_to_ast(env, value, &content),
value: bool_to_ast(env, value, content),
region: Region::zero(),
});
@ -739,9 +739,9 @@ fn bool_to_ast<'a>(env: &Env<'a, '_>, value: bool, content: &Content) -> Expr<'a
}
}
Alias(_, _, var) => {
let content = env.subs.get_without_compacting(*var).content;
let content = env.subs.get_content_without_compacting(*var);
bool_to_ast(env, value, &content)
bool_to_ast(env, value, content)
}
other => {
unreachable!("Unexpected FlatType {:?} in bool_to_ast", other);
@ -771,9 +771,9 @@ fn byte_to_ast<'a>(env: &Env<'a, '_>, value: u8, content: &Content) -> Expr<'a>
// and/or records (e.g. { a: { b: { c: True } } }),
// so we need to do this recursively on the field type.
let field_var = *field.as_inner();
let field_content = env.subs.get_without_compacting(field_var).content;
let field_content = env.subs.get_content_without_compacting(field_var);
let loc_expr = Located {
value: byte_to_ast(env, value, &field_content),
value: byte_to_ast(env, value, field_content),
region: Region::zero(),
};
@ -813,10 +813,10 @@ fn byte_to_ast<'a>(env: &Env<'a, '_>, value: u8, content: &Content) -> Expr<'a>
debug_assert_eq!(payload_vars.len(), 1);
let var = *payload_vars.iter().next().unwrap();
let content = env.subs.get_without_compacting(var).content;
let content = env.subs.get_content_without_compacting(var);
let loc_payload = &*arena.alloc(Located {
value: byte_to_ast(env, value, &content),
value: byte_to_ast(env, value, content),
region: Region::zero(),
});
@ -850,9 +850,9 @@ fn byte_to_ast<'a>(env: &Env<'a, '_>, value: u8, content: &Content) -> Expr<'a>
}
}
Alias(_, _, var) => {
let content = env.subs.get_without_compacting(*var).content;
let content = env.subs.get_content_without_compacting(*var);
byte_to_ast(env, value, &content)
byte_to_ast(env, value, content)
}
other => {
unreachable!("Unexpected FlatType {:?} in bool_to_ast", other);
@ -887,9 +887,9 @@ fn num_to_ast<'a>(env: &Env<'a, '_>, num_expr: Expr<'a>, content: &Content) -> E
// and/or records (e.g. { a: { b: { c: 5 } } }),
// so we need to do this recursively on the field type.
let field_var = *field.as_inner();
let field_content = env.subs.get_without_compacting(field_var).content;
let field_content = env.subs.get_content_without_compacting(field_var);
let loc_expr = Located {
value: num_to_ast(env, num_expr, &field_content),
value: num_to_ast(env, num_expr, field_content),
region: Region::zero(),
};
@ -937,10 +937,10 @@ fn num_to_ast<'a>(env: &Env<'a, '_>, num_expr: Expr<'a>, content: &Content) -> E
debug_assert_eq!(payload_vars.len(), 1);
let var = *payload_vars.iter().next().unwrap();
let content = env.subs.get_without_compacting(var).content;
let content = env.subs.get_content_without_compacting(var);
let loc_payload = &*arena.alloc(Located {
value: num_to_ast(env, num_expr, &content),
value: num_to_ast(env, num_expr, content),
region: Region::zero(),
});
@ -955,9 +955,9 @@ fn num_to_ast<'a>(env: &Env<'a, '_>, num_expr: Expr<'a>, content: &Content) -> E
}
}
Alias(_, _, var) => {
let content = env.subs.get_without_compacting(*var).content;
let content = env.subs.get_content_without_compacting(*var);
num_to_ast(env, num_expr, &content)
num_to_ast(env, num_expr, content)
}
other => {
panic!("Unexpected FlatType {:?} in num_to_ast", other);