Repository navigation
Conversation
Evaluate checked and effectful arguments at the partial-call site so the remaining pure call can propagate and inline. Snapshot preceding arguments before later effects, including across supplied curried lists. Add regression coverage for checked prefixes, once-only getters, argument order, and discarded Wasm partial applications. The ordering regressions reject a variant that hoists only the final effectful argument. Validation: Metals compilation, ctest, cwtest, focused diff tests, and hkmc2AllTests/test (1,285 tests).
Validation: Metals compilation and hkmc2AllTests/test (1,288 tests).
Contributor
Author
|
Note to self: this seems very fishy and will need a closer look and probably a more general solution. Likely related to #571. |
This branch has not been deployed
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]
Checked or effectful arguments currently stop a partial application from propagating into its later application. Evaluate them once at the original call site, in source order, leaving a pure call prefix that can combine and inline. Earlier arguments are snapshotted too, because later arguments can mutate the locals they read.
This is E20 from #575: 24 added Scala lines in one file. Tests cover checked prefixes, once-only getters, evaluation order across arguments and curried lists, and discarded Wasm partial applications. The ordering regressions reject a variant that hoists only the last effectful argument.
Targets current
hkmc2independently of #575 and the other extraction PRs.