mirror of
https://github.com/Mercury-Language/mercury.git
synced 2026-04-15 17:33:38 +00:00
Estimated hours taken: 8 Branches: main The comparison and unification function pointers stored in the type_ctor_info must be pointers to functions where all the arguments are boxed. This wasn't occuring on the IL backend for types which are value types. il_compiler/compiler/rtti_to_mlds.m: Call ml_gen_closure_wrapper to construct a version of the comparison and unification functions where the arguments are boxed. The wrapper function simply unboxes the arguments and calls the actual special pred. il_compiler/compiler/ml_closure_gen.m: Adapt ml_gen_closure_wrapper so that it can generate a wrapper function for special preds. tests/hard_coded/Mmakefile: tests/hard_coded/equality_pred_which_requires_boxing.exp: tests/hard_coded/equality_pred_which_requires_boxing.m: Add a test case for this bug.
7 lines
160 B
Plaintext
7 lines
160 B
Plaintext
float (boxed): true
|
|
float (unboxed): true
|
|
foreign_type (boxed): true
|
|
foreign_type (unboxed): true
|
|
foreign_type(T) (boxed): true
|
|
foreign_type(T) (unboxed): true
|