Skip to content

Fix ETS and TypeScript frontend contracts and simplify reviewed code - #443

Merged
CaelmBleidd merged 63 commits into
neofrom
caelmbleidd/ts-quality-review-20261014
Oct 15, 2026
Merged

CaelmBleidd merged 63 commits into
neofrom
caelmbleidd/ts-quality-review-20261014

Conversation

@CaelmBleidd

@CaelmBleidd CaelmBleidd commented Oct 15, 2026 •

Copy link
Copy Markdown
Member

Fix TypeScript lowering and ETS model defects found during a class-by-class review of jacodb-ets and ts-frontend, and make the affected code follow consistent, explicit control flow.

  • Preserve evaluation order, lexical bindings, generic method metadata, exports and namespace ownership; forward supported inherited constructor parameters and stop explicitly at unsupported lowering boundaries.
  • Correct CFG edge identities, DSL ownership and snapshots, DTO conversion, identity collections and graph rendering.
  • Preserve external process arguments and failures, improve observed-child cleanup, and simplify duplicated helpers and complex branch conditions.
  • Add focused regression sources for the corrected contracts. The review covers 71 bounded JacoDB units.

Rebased onto neo at 7b3ff240da5c79a365db175afbc5c0aab09366df. All 60 review commits retain equivalent patches after rebase; an independent static check also confirmed that the upstream constructor parameter-property binding fix remains intact.

The initial automatic CI run reported an unused import and two TypeScript narrowing errors. A subsequent, independently inspected commit removes the import and explicitly narrows namespace bodies and catch binding patterns.

A subsequent CI run built the frontend, then reported 15 frontend test failures. Follow-up commits repair the native iterator oracle, fixture and DTO matcher errors, and assertions for explicit unsupported boundaries. They also fix a production defect: inferred generic binders now preserve their immediate declared constraint (T extends U) instead of reducing it to a transitive base constraint. The generic fix received independent static verification; the original failing regression is retained.

Local validation: full-range git diff --check, range-diff inspection, and independent static review of substantive fixes and the rebase overlap. Per the requested resource restriction, no JVM, Gradle, Node/npm, compiler, tests, solvers or containers were started locally.

Automatic remote CI at eecc7513f6b761b46700d1776adedab664eefadf is green: 747/747 frontend tests, ETS Kotlin tests, lifecycle, and core on JDK 8, 11 and 19; result publication also passed. Run: https://github.com/UnitTestBot/jacodb/actions/runs/38702257262. This is JacoDB CI evidence; the USVM companion still needs a successful dependency download and its own checks.

This PR supplies the isSuperCall metadata consumed by the companion UnitTestBot/usvm#520, which pins JacoDB commit eecc7513f6b761b46700d1776adedab664eefadf. Merge this JacoDB change before integrating the USVM companion; no artifact build has been requested manually.

Name modifier encodings and separate test setup and assertions. Preserve wire values and test content. Verification was static only at the user request.
Name dimensional arguments and separate canonicalization actions from assertions. Preserve existing scenarios and expected types. Verification was static only at the user request.
Review signature and entity contracts without production changes. Normalize the assigned file test import and logical phase spacing. Independent static verification only; no compiler, tests, JVM or containers were run.
Apply the agreed logical-block spacing. Static diff inspection only; no runtime processes were launched.
Apply agreed Kotlin style to reviewed expression and statement models. Verification is static source inspection only.
Initialize file ownership recursively while preserving namespace and method owners. Add nested ownership regression source. Independent static verification only; no tests executed.
Distinguish default declaration syntax from live aliases and retain type-only export metadata in diagnostic rendering. Correct import documentation. Independent static verification only.
Reject nonexistent endpoint IDs at construction and retain the existing nonempty-block boundary guard. Simplify predecessor generation and add focused valid and invalid boundary regression source. Static verification only.
Accept ClassValueRef in the existing immediate constructor field and add a raw JSON decoder regression source. Remove inactive operator and model comments. Independent static verification only; no tests executed.
@github-actions

github-actions Bot commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

Test Results

  247 files  + 7    247 suites  +7   16m 14s ⏱️ +26s
  892 tests +53    880 ✅ +53  12 💤 ±0  0 ❌ ±0 
2 162 runs  +53  2 112 ✅ +53  50 💤 ±0  0 ❌ ±0 

Results for commit eecc751. ± Comparison against base commit 7b3ff24.

♻️ This comment has been updated with latest results.

@CaelmBleidd
CaelmBleidd merged commit 1260b68 into neo Oct 15, 2026
7 checks passed
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.

1 participant