Skip to content

Update JacoDB neo and adapt TypeScript frontend consumers - #470

Draft
CaelmBleidd wants to merge 16 commits into
mainfrom
caelmbleidd/jacodb-neo-compat-20261011
Draft

CaelmBleidd wants to merge 16 commits into
mainfrom
caelmbleidd/jacodb-neo-compat-20261011

Conversation

@CaelmBleidd

@CaelmBleidd CaelmBleidd commented Oct 10, 2026 •

Copy link
Copy Markdown
Member

The current JacoDB neo frontend normalizes named bindings, method calls, numeric updates, and object properties into IR forms that the existing USVM consumers do not fully handle. This updates the shared JacoDB pin to bcad76ffd7 and adapts those consumers while preserving method selection before argument evaluation, receiver identity, postfix update snapshots, and explicit unsupported outcomes.

It also repairs type inference for normalized data-property definitions and pointer-call receivers, restores fixed-point liveness propagation, and fixes Node 22 replay of nested TypeScript imports. CI runs on stacked pull requests and explicitly uses the native TypeScript frontend, matching the default provider at both the previous and updated JacoDB revisions. The full TS/dataflow/Calls checks are preserved in one job. Feature models and experiment changes remain in dependent PRs.

Validation: the final native TS/dataflow/Calls/FastCheck gate passed on source revision d1bcc38d14 (1,162 passed, 175 skipped, zero failures), plus 60 Node adapter tests and strict TS lint. Core/JVM gates passed separately. The latest commit only restores CI provider selection and removes duplicate CI setup; its implementation and test sources match that passing revision. Exact published-head CI is pending.

An exploratory run that explicitly selected legacy ArkAnalyzer failed 36 tests. The previous CI did not select that provider, and this PR does not claim legacy parity. Interrupted local runs were cancelled to reduce machine load and are not counted as passing checks.

This is the common review base for the open PR refresh. No USVM pull requests are being merged automatically.


private fun sequentTypedVariable(current: EtsStmt, fact: TypedVariable): List<TypedVariable> {
if (current !is EtsAssignStmt) return emptyList()
private fun sequentTypedVariable(stmt: EtsStmt, fact: TypedVariable): List<TypedVariable> {

private fun sequentFact(current: EtsStmt, fact: TypedVariable): List<TypedVariable> {
if (current !is EtsAssignStmt) return listOf(fact)
private fun sequentFact(stmt: EtsStmt, fact: TypedVariable): List<TypedVariable> {

private fun sequentFact(current: EtsStmt, fact: TypedVariable): List<TypedVariable> {
if (current !is EtsAssignStmt) return listOf(fact)
private fun sequentFact(stmt: EtsStmt, fact: TypedVariable): List<TypedVariable> {
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants