Repository navigation
Keep fused values compatible with container field storage - #628
Merged
Merged
Conversation
Validation: Metals compilation and hkmc2AllTests/test (1,289 tests).
This was referenced Nov 7, 2026
Member
|
The changes appear to be extraction of the first bullet point of LPTK#33 and it look fine to me, thanks! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
[GPT-6 Astra]
A constructor stored in a surviving object's nominally typed field must keep a representation that fits that field. Match fusion can otherwise replace it with a closure, producing invalid storage and Wasm failures.
Propagate the need to keep a constructor unfused through its stored producers when their replacement would not fit the field. Fields with the top representation still admit match closures; unconsumed containers also seed the exclusion graph. Keep field-projection fusion conservative at storage boundaries.
This is E24 from #575: 40 changed Scala lines across four files, plus JS and Wasm regressions and regenerated goldens. It targets current
hkmc2independently of #575 and the constructor-safety extraction.When integrating with the deforestation follow-up #624, remove its E24
:fixmeindeforest/erasedTypes.mls, retain the assertion, and regenerate shared goldens.