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

@ -2261,16 +2261,15 @@ impl<
.storage_manager
.claim_stack_area(dst, self.layout_interner.stack_size(*ret_layout));
let ret_fields = if let LayoutRepr::Struct { field_layouts, .. } =
self.layout_interner.get(*ret_layout).repr
{
field_layouts
} else {
internal_error!(
"Expected replace to return a struct instead found: {:?}",
ret_layout
)
};
let ret_fields =
if let LayoutRepr::Struct(field_layouts) = self.layout_interner.get(*ret_layout).repr {
field_layouts
} else {
internal_error!(
"Expected replace to return a struct instead found: {:?}",
ret_layout
)
};
// Only return list and old element.
debug_assert_eq!(ret_fields.len(), 2);

View file

@ -674,7 +674,7 @@ impl<
}
};
if let LayoutRepr::Struct { field_layouts, .. } = layout {
if let LayoutRepr::Struct(field_layouts) = layout {
let mut current_offset = base_offset;
for (field, field_layout) in fields.iter().zip(field_layouts.iter()) {
self.copy_symbol_to_stack_offset(

View file

@ -1481,7 +1481,7 @@ trait Backend<'a> {
),
LowLevel::StrToNum => {
let number_layout = match self.interner().get(*ret_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!(),
};