mirror of
https://github.com/roc-lang/roc.git
synced 2025-08-04 12:18:19 +00:00
Drop Layout::struct_no_name_order
This commit is contained in:
parent
1170b542b6
commit
4296d5a349
11 changed files with 58 additions and 62 deletions
|
@ -1348,7 +1348,7 @@ pub fn build_exp_expr<'a, 'ctx>(
|
|||
let field_layouts = tag_layouts[*tag_id as usize];
|
||||
|
||||
let struct_layout =
|
||||
layout_interner.insert(Layout::struct_no_name_order(field_layouts));
|
||||
layout_interner.insert_no_semantic(LayoutRepr::struct_(field_layouts));
|
||||
let struct_type = basic_type_from_layout(env, layout_interner, struct_layout);
|
||||
|
||||
let opaque_data_ptr = env
|
||||
|
@ -1405,7 +1405,7 @@ pub fn build_exp_expr<'a, 'ctx>(
|
|||
}
|
||||
UnionLayout::NonNullableUnwrapped(field_layouts) => {
|
||||
let struct_layout =
|
||||
layout_interner.insert(Layout::struct_no_name_order(field_layouts));
|
||||
layout_interner.insert_no_semantic(LayoutRepr::struct_(field_layouts));
|
||||
|
||||
let struct_type = basic_type_from_layout(env, layout_interner, struct_layout);
|
||||
let target_loaded_type = basic_type_from_layout(env, layout_interner, layout);
|
||||
|
@ -1456,7 +1456,7 @@ pub fn build_exp_expr<'a, 'ctx>(
|
|||
|
||||
let field_layouts = other_fields;
|
||||
let struct_layout =
|
||||
layout_interner.insert(Layout::struct_no_name_order(field_layouts));
|
||||
layout_interner.insert_no_semantic(LayoutRepr::struct_(field_layouts));
|
||||
|
||||
let struct_type = basic_type_from_layout(env, layout_interner, struct_layout);
|
||||
let target_loaded_type = basic_type_from_layout(env, layout_interner, layout);
|
||||
|
@ -2095,7 +2095,7 @@ fn lookup_at_index_ptr2<'a, 'ctx>(
|
|||
) -> BasicValueEnum<'ctx> {
|
||||
let builder = env.builder;
|
||||
|
||||
let struct_layout = layout_interner.insert(Layout::struct_no_name_order(field_layouts));
|
||||
let struct_layout = layout_interner.insert_no_semantic(LayoutRepr::struct_(field_layouts));
|
||||
let struct_type =
|
||||
basic_type_from_layout(env, layout_interner, struct_layout).into_struct_type();
|
||||
|
||||
|
@ -3718,7 +3718,7 @@ fn expose_function_to_host_help_c_abi_generic<'a, 'ctx>(
|
|||
|
||||
builder.position_at_end(entry);
|
||||
|
||||
let wrapped_layout = layout_interner.insert(roc_call_result_layout(
|
||||
let wrapped_layout = layout_interner.insert_no_semantic(roc_call_result_layout(
|
||||
env.arena,
|
||||
return_layout,
|
||||
env.target_info,
|
||||
|
@ -3859,7 +3859,7 @@ fn expose_function_to_host_help_c_abi_gen_test<'a, 'ctx>(
|
|||
|
||||
builder.position_at_end(last_block);
|
||||
|
||||
let wrapper_result = layout_interner.insert(Layout::struct_no_name_order(
|
||||
let wrapper_result = layout_interner.insert_no_semantic(LayoutRepr::struct_(
|
||||
env.arena.alloc([Layout::U64, return_layout]),
|
||||
));
|
||||
|
||||
|
@ -4473,10 +4473,10 @@ fn roc_call_result_layout<'a>(
|
|||
arena: &'a Bump,
|
||||
return_layout: InLayout<'a>,
|
||||
target_info: TargetInfo,
|
||||
) -> Layout<'a> {
|
||||
) -> LayoutRepr<'a> {
|
||||
let elements = [Layout::U64, Layout::usize(target_info), return_layout];
|
||||
|
||||
Layout::struct_no_name_order(arena.alloc(elements))
|
||||
LayoutRepr::struct_(arena.alloc(elements))
|
||||
}
|
||||
|
||||
fn roc_call_result_type<'ctx>(
|
||||
|
|
|
@ -11,7 +11,7 @@ use roc_builtins::bitcode::{FloatWidth, IntWidth};
|
|||
use roc_error_macros::internal_error;
|
||||
use roc_module::symbol::Symbol;
|
||||
use roc_mono::layout::{
|
||||
Builtin, InLayout, Layout, LayoutIds, LayoutInterner, LayoutRepr, STLayoutInterner, UnionLayout,
|
||||
Builtin, InLayout, LayoutIds, LayoutInterner, LayoutRepr, STLayoutInterner, UnionLayout,
|
||||
};
|
||||
|
||||
use super::build::{load_roc_value, use_roc_value, BuilderExt};
|
||||
|
@ -973,7 +973,7 @@ fn build_tag_eq_help<'a, 'ctx>(
|
|||
env.builder.position_at_end(block);
|
||||
|
||||
let struct_layout =
|
||||
layout_interner.insert(Layout::struct_no_name_order(field_layouts));
|
||||
layout_interner.insert_no_semantic(LayoutRepr::struct_(field_layouts));
|
||||
|
||||
let answer = eq_ptr_to_struct(
|
||||
env,
|
||||
|
@ -1046,7 +1046,7 @@ fn build_tag_eq_help<'a, 'ctx>(
|
|||
env.builder.position_at_end(block);
|
||||
|
||||
let struct_layout =
|
||||
layout_interner.insert(Layout::struct_no_name_order(field_layouts));
|
||||
layout_interner.insert_no_semantic(LayoutRepr::struct_(field_layouts));
|
||||
|
||||
let answer = eq_ptr_to_struct(
|
||||
env,
|
||||
|
@ -1108,7 +1108,8 @@ fn build_tag_eq_help<'a, 'ctx>(
|
|||
|
||||
env.builder.position_at_end(compare_other);
|
||||
|
||||
let struct_layout = layout_interner.insert(Layout::struct_no_name_order(other_fields));
|
||||
let struct_layout =
|
||||
layout_interner.insert_no_semantic(LayoutRepr::struct_(other_fields));
|
||||
|
||||
let answer = eq_ptr_to_struct(
|
||||
env,
|
||||
|
@ -1208,7 +1209,7 @@ fn build_tag_eq_help<'a, 'ctx>(
|
|||
env.builder.position_at_end(block);
|
||||
|
||||
let struct_layout =
|
||||
layout_interner.insert(Layout::struct_no_name_order(field_layouts));
|
||||
layout_interner.insert_no_semantic(LayoutRepr::struct_(field_layouts));
|
||||
|
||||
let answer = eq_ptr_to_struct(
|
||||
env,
|
||||
|
@ -1248,7 +1249,8 @@ fn build_tag_eq_help<'a, 'ctx>(
|
|||
|
||||
env.builder.position_at_end(compare_fields);
|
||||
|
||||
let struct_layout = layout_interner.insert(Layout::struct_no_name_order(field_layouts));
|
||||
let struct_layout =
|
||||
layout_interner.insert_no_semantic(LayoutRepr::struct_(field_layouts));
|
||||
|
||||
let answer = eq_ptr_to_struct(
|
||||
env,
|
||||
|
|
|
@ -13,7 +13,7 @@ use roc_error_macros::internal_error;
|
|||
use roc_module::symbol::Symbol;
|
||||
use roc_mono::ir::LookupType;
|
||||
use roc_mono::layout::{
|
||||
Builtin, InLayout, Layout, LayoutIds, LayoutInterner, LayoutRepr, STLayoutInterner, UnionLayout,
|
||||
Builtin, InLayout, LayoutIds, LayoutInterner, LayoutRepr, STLayoutInterner, UnionLayout,
|
||||
};
|
||||
use roc_region::all::Region;
|
||||
|
||||
|
@ -426,7 +426,7 @@ fn build_clone_struct<'a, 'ctx>(
|
|||
value: BasicValueEnum<'ctx>,
|
||||
field_layouts: &[InLayout<'a>],
|
||||
) -> IntValue<'ctx> {
|
||||
let layout = Layout::struct_no_name_order(field_layouts);
|
||||
let layout = LayoutRepr::struct_(field_layouts);
|
||||
|
||||
if layout.safe_to_memcpy(layout_interner) {
|
||||
build_copy(env, ptr, cursors.offset, value)
|
||||
|
@ -689,8 +689,8 @@ fn build_clone_tag_help<'a, 'ctx>(
|
|||
);
|
||||
|
||||
// load the tag payload (if any)
|
||||
let payload_layout = Layout::struct_no_name_order(field_layouts);
|
||||
let payload_in_layout = layout_interner.insert(payload_layout);
|
||||
let payload_layout = LayoutRepr::struct_(field_layouts);
|
||||
let payload_in_layout = layout_interner.insert_no_semantic(payload_layout);
|
||||
|
||||
let opaque_payload_ptr = env
|
||||
.builder
|
||||
|
@ -748,11 +748,11 @@ fn build_clone_tag_help<'a, 'ctx>(
|
|||
|
||||
let tag_value = tag_pointer_clear_tag_id(env, tag_value.into_pointer_value());
|
||||
|
||||
let layout = layout_interner.insert(Layout::struct_no_name_order(field_layouts));
|
||||
let layout = layout_interner.insert_no_semantic(LayoutRepr::struct_(field_layouts));
|
||||
let layout = if union_layout.stores_tag_id_in_pointer(env.target_info) {
|
||||
layout
|
||||
} else {
|
||||
layout_interner.insert(Layout::struct_no_name_order(
|
||||
layout_interner.insert_no_semantic(LayoutRepr::struct_(
|
||||
env.arena.alloc([layout, union_layout.tag_id_layout()]),
|
||||
))
|
||||
};
|
||||
|
@ -797,7 +797,7 @@ fn build_clone_tag_help<'a, 'ctx>(
|
|||
|
||||
build_copy(env, ptr, offset, extra_offset.into());
|
||||
|
||||
let layout = layout_interner.insert(Layout::struct_no_name_order(fields));
|
||||
let layout = layout_interner.insert_no_semantic(LayoutRepr::struct_(fields));
|
||||
let basic_type = basic_type_from_layout(env, layout_interner, layout);
|
||||
|
||||
let (width, _) = union_layout.data_size_and_alignment(layout_interner, env.target_info);
|
||||
|
@ -853,7 +853,7 @@ fn build_clone_tag_help<'a, 'ctx>(
|
|||
other_tags[i]
|
||||
};
|
||||
|
||||
let layout = layout_interner.insert(Layout::struct_no_name_order(fields));
|
||||
let layout = layout_interner.insert_no_semantic(LayoutRepr::struct_(fields));
|
||||
let basic_type = basic_type_from_layout(env, layout_interner, layout);
|
||||
|
||||
let (width, _) =
|
||||
|
@ -928,7 +928,7 @@ fn build_clone_tag_help<'a, 'ctx>(
|
|||
// write the "pointer" af the current offset
|
||||
build_copy(env, ptr, offset, extra_offset.into());
|
||||
|
||||
let layout = layout_interner.insert(Layout::struct_no_name_order(other_fields));
|
||||
let layout = layout_interner.insert_no_semantic(LayoutRepr::struct_(other_fields));
|
||||
let basic_type = basic_type_from_layout(env, layout_interner, layout);
|
||||
|
||||
let cursors = Cursors {
|
||||
|
|
|
@ -19,7 +19,7 @@ use inkwell::{AddressSpace, IntPredicate};
|
|||
use roc_module::symbol::Interns;
|
||||
use roc_module::symbol::Symbol;
|
||||
use roc_mono::layout::{
|
||||
Builtin, InLayout, Layout, LayoutIds, LayoutInterner, LayoutRepr, STLayoutInterner, UnionLayout,
|
||||
Builtin, InLayout, LayoutIds, LayoutInterner, LayoutRepr, STLayoutInterner, UnionLayout,
|
||||
};
|
||||
|
||||
use super::build::{cast_if_necessary_for_opaque_recursive_pointers, load_roc_value, FunctionSpec};
|
||||
|
@ -267,7 +267,7 @@ fn modify_refcount_struct<'a, 'ctx>(
|
|||
let block = env.builder.get_insert_block().expect("to be in a function");
|
||||
let di_location = env.builder.get_current_debug_location().unwrap();
|
||||
|
||||
let layout = layout_interner.insert(Layout::struct_no_name_order(layouts));
|
||||
let layout = layout_interner.insert_no_semantic(LayoutRepr::struct_(layouts));
|
||||
|
||||
let (_, fn_name) = function_name_from_mode(
|
||||
layout_ids,
|
||||
|
@ -1274,7 +1274,7 @@ fn build_rec_union_recursive_decrement<'a, 'ctx>(
|
|||
|
||||
env.builder.position_at_end(block);
|
||||
|
||||
let fields_struct = layout_interner.insert(Layout::struct_no_name_order(field_layouts));
|
||||
let fields_struct = layout_interner.insert_no_semantic(LayoutRepr::struct_(field_layouts));
|
||||
let wrapper_type = basic_type_from_layout(env, layout_interner, fields_struct);
|
||||
|
||||
// cast the opaque pointer to a pointer of the correct shape
|
||||
|
@ -1744,7 +1744,7 @@ fn modify_refcount_nonrecursive_help<'a, 'ctx>(
|
|||
let block = env.context.append_basic_block(parent, "tag_id_modify");
|
||||
env.builder.position_at_end(block);
|
||||
|
||||
let fields_struct = layout_interner.insert(Layout::struct_no_name_order(field_layouts));
|
||||
let fields_struct = layout_interner.insert_no_semantic(LayoutRepr::struct_(field_layouts));
|
||||
let data_struct_type = basic_type_from_layout(env, layout_interner, fields_struct);
|
||||
|
||||
debug_assert!(data_struct_type.is_struct_type());
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue