[TS] Concatenate symbolic strings - #460
Open
CaelmBleidd wants to merge 1 commit into
Open
CaelmBleidd wants to merge 1 commit into
CaelmBleidd wants to merge 1 commit into
Conversation
CaelmBleidd
force-pushed
the
caelmbleidd/ts-424-symbolic-concat
branch
from
October 2, 2026 22:12
137c2bf to
6709ce3
Compare
CaelmBleidd
changed the base branch from
caelmbleidd/ts-421-symbolic-string
to
caelmbleidd/ts-422-string-value-equality
October 2, 2026 22:13
CaelmBleidd
force-pushed
the
caelmbleidd/ts-424-symbolic-concat
branch
from
October 2, 2026 23:04
6709ce3 to
ba5bfb6
Compare
CaelmBleidd
changed the base branch from
caelmbleidd/ts-422-string-value-equality
to
caelmbleidd/ts-423-string-truthiness
October 2, 2026 23:05
CaelmBleidd
force-pushed
the
caelmbleidd/ts-423-string-truthiness
branch
from
October 3, 2026 05:26
2c08f04 to
9d511c1
Compare
CaelmBleidd
force-pushed
the
caelmbleidd/ts-424-symbolic-concat
branch
3 times, most recently
from
October 3, 2026 06:23
20da8a6 to
9af3ed8
Compare
CaelmBleidd
force-pushed
the
caelmbleidd/ts-424-symbolic-concat
branch
from
October 3, 2026 06:30
9af3ed8 to
5760fe8
Compare
CaelmBleidd
marked this pull request as ready for review
October 3, 2026 06:43
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.
Closes #424.
Stack
This #424-only PR is based on #456 at
df0b9afe4b6730b9e88a466c796fd7989b539b9a. It contains one issue-specific commit. Independent pinned core correctness and AI code hygienemy-reviewpasses on the exact head found no actionable defects. This PR is ready for review as a stacked change; merge after #456. The shared Node replay helper comes from the parent stack.Change
memcpyranges. Preserve left-to-right operand evaluation and existing conversion of concrete Boolean, Number,null, andundefinedoperands.TsOptions.maxArraySizeas explicit unsupported paths while retaining supported paths.stringand string literal typed fields materialized by [TS] Make empty strings falsy in symbolic conditions #456. Check ordinaryanalyzeWithOutcomestates and replay resolved witnesses in Node.js for a typed field, an empty literal field, and a nonempty literal field containing NUL and a surrogate pair.Verification
Symbolic string concatenation is not supported for left operand.b5e10a1a:TsSymbolicStringConcatTest4/4,TsStringEqualityTest6/6,TsSymbolicStringInputTest11/11, andTsDynamicTruthinessTest1/1 passed, including the new any-object regression and Node replays.:usvm-ts:detektMainand:usvm-ts:detektTestpassed with zero code smells.git diff --checkpassed.5760fe85: the JVM, lint, core, and TS PBT jobs passed.ci-tsstopped during ArkAnalyzer setup because itsohos-typescriptdependency was missing; the TS test step did not run in that job. The local TS checks above passed on this head. Historical run 37102162252 succeeded for the previous head20da8a6fand does not verify this SHA.Boundary
A symbolic string reference still requires modeled backing. Symbolic Number-to-string conversion and object
ToPrimitiveremain unsupported. Result lengths above the configured bound produce explicit unsupported paths.