Convert LayoutRepr::Struct into a tuple variant

This commit is contained in:
Ayaz Hafiz 2023-05-10 16:41:13 -05:00
parent a6bda6eccf
commit a67c148be7
No known key found for this signature in database
GPG key ID: 0E2A37416A25EF58
24 changed files with 85 additions and 128 deletions

View file

@ -611,9 +611,7 @@ pub fn build_compare_wrapper<'a, 'ctx>(
let closure_data_repr = closure_data_layout.runtime_representation();
let arguments_cast = match layout_interner.get(closure_data_repr).repr {
LayoutRepr::Struct {
field_layouts: &[], ..
} => {
LayoutRepr::Struct(&[]) => {
// nothing to add
&default
}

View file

@ -1332,7 +1332,7 @@ pub fn build_exp_expr<'a, 'ctx>(
// extract field from a record
match (value, layout_interner.get(layout).repr) {
(StructValue(argument), LayoutRepr::Struct { field_layouts, .. }) => {
(StructValue(argument), LayoutRepr::Struct(field_layouts)) => {
debug_assert!(!field_layouts.is_empty());
let field_value = env

View file

@ -165,7 +165,7 @@ fn build_eq<'a, 'ctx>(
&builtin,
),
LayoutRepr::Struct { field_layouts, .. } => build_struct_eq(
LayoutRepr::Struct(field_layouts) => build_struct_eq(
env,
layout_interner,
layout_ids,
@ -353,7 +353,7 @@ fn build_neq<'a, 'ctx>(
&builtin,
),
LayoutRepr::Struct { field_layouts, .. } => {
LayoutRepr::Struct(field_layouts) => {
let is_equal = build_struct_eq(
env,
layout_interner,

View file

@ -37,10 +37,7 @@ pub fn basic_type_from_layout<'a, 'ctx, 'env>(
use LayoutRepr::*;
match layout_interner.get(layout).repr {
Struct {
field_layouts: sorted_fields,
..
} => basic_type_from_record(env, layout_interner, sorted_fields),
Struct(sorted_fields, ..) => basic_type_from_record(env, layout_interner, sorted_fields),
LambdaSet(lambda_set) => {
basic_type_from_layout(env, layout_interner, lambda_set.runtime_representation())
}

View file

@ -307,7 +307,7 @@ fn build_clone<'a, 'ctx>(
builtin,
),
LayoutRepr::Struct { field_layouts, .. } => build_clone_struct(
LayoutRepr::Struct(field_layouts) => build_clone_struct(
env,
layout_interner,
layout_ids,

View file

@ -197,7 +197,7 @@ pub(crate) fn run_low_level<'a, 'ctx>(
arguments!(string);
let number_layout = match layout_interner.get(layout).repr {
LayoutRepr::Struct { field_layouts, .. } => field_layouts[0], // TODO: why is it sometimes a struct?
LayoutRepr::Struct(field_layouts) => field_layouts[0], // TODO: why is it sometimes a struct?
_ => unreachable!(),
};
@ -2013,7 +2013,7 @@ fn build_int_unary_op<'a, 'ctx, 'env>(
// return_layout : Result N [OutOfBounds]* ~ { result: N, out_of_bounds: bool }
let target_int_width = match layout_interner.get(return_layout).repr {
LayoutRepr::Struct { field_layouts, .. } if field_layouts.len() == 2 => {
LayoutRepr::Struct(field_layouts) if field_layouts.len() == 2 => {
debug_assert!(layout_interner.eq_repr(field_layouts[1], Layout::BOOL));
field_layouts[0].to_int_width()
}

View file

@ -562,7 +562,7 @@ fn modify_refcount_layout_build_function<'a, 'ctx>(
}
}
Struct { field_layouts, .. } => {
Struct(field_layouts) => {
let function =
modify_refcount_struct(env, layout_interner, layout_ids, field_layouts, mode);