Repository navigation
[TS] Propagate failed value materialization through callers - #621
Open
CaelmBleidd wants to merge 3 commits into
Open
CaelmBleidd wants to merge 3 commits into
CaelmBleidd wants to merge 3 commits into
Conversation
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.
Failed live fake-value materialization can currently keep writing heap/register values after its exactly-one-type assertion has stopped the path. Return a nullable value from live materialization and propagate that stop through array/field operations, residual calls and Promise storage. Keep initial-state construction explicit through
mkInitialFakeValue; update Calls and PBT consumers together.Validation: 33 focused tests in
FakeExprUtilTest,ExprUtilConditionalValueTest,TsContextFactoryTestandTsMachineFailurePrefixTestpassed. Calls and PBT Kotlin consumers compile. Tests run under the exclusive local build lock. Full integration CI is separate.Stack: this PR targets
caelmbleidd/calls-collection-prerequisites, a convergence branch replaying the already published fixes from #556, #557, #558, #559, #561, #564, #568, #570, #587, #589, #591, #600, #605 and #609 onto maine56cea501. The PR diff contains only the materialization change. After those prerequisites merge, rebase this own range onto current main; do not merge the convergence branch wholesale.Promise argument semantics, witness diagnostics and collection models are published as separate descendants. The unsupported-global fixture now uses Reflect because Math already has a supported native model.
Fixture validation follow-up: reuse the existing deterministic tests from #582 (boxed registry identity with explicit branch domains) and #593 (untyped coercion through bounded numeric/boolean callers). Their original patches also occur in #578; integrate each once and drop duplicate commits when rebasing the stack. This changes test domains, not the experiment runtime or model coverage results.
The combined TS stack also passed the full usvm-ts suite: 1763 passed, 139 skipped, zero failures. This full-suite run preceded the final fixture-only #593 update; the bounded coercion suite was checked separately afterward.