shame icon indicating copy to clipboard operation
shame copied to clipboard

Merge layout checks

Open chronicl opened this issue 7 months ago • 0 comments

There is multiple places in shame where type layouts are checked and compared. It would be nice to merge these checks/comparisons as much as possible to reduce maintenance burden.

After #19 and #21 mainly

  • src/frontend/any/rust_types/type_layout/construction.rs
  • src/frontend/any/rust_types/type_layout/eq.rs

contain these checks and comparisons.

Suggested approach

Integrate check_repr_equivalence_for_type of construction.rs into check_eq of eq.rs by passing an EqContext enum, which describes in what kind of setting we are comparing the two type layouts. check_eq can keep it's simple type_layout1 == type_layout2 check and in case of a mismatch EqContext is passed to the LayoutMismatch error, which handles figuring out where exactly the mismatch occured and generates an error message appropriate for the EqContext.

chronicl avatar Jul 05 '25 03:07 chronicl