[PR #1414] [CLOSED] test(javascript): preserve member-alias fanout and loop regressions #2868

Closed
opened 2026-10-17 21:11:12 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/morluto/rea/pull/1414
Author: @akushonkamen
Created: 10/10/2026
Status: ❌ Closed

Base: main ← Head: fix-1401


📝 Commits (4)

  • 8a95fec fix(javascript): dedupe member-mutation alias expansion through reassignment loops
  • af1c093 fix(javascript): expand distinct alias arrival paths under a bounded budget
  • f7ed8d4 chore: integrate fixed-point member propagation from main
  • 4c08a7d test(javascript): retain complete alias fanout through the CLI

📊 Changes

2 files changed (+108 additions, -0 deletions)

View changed files

📝 src/domain/javascript/javascriptSemanticAnalysis.reference_lifetimes.test.ts (+14 -0)
➕ tests/boundary/cli/javascriptMemberFanout.test.ts (+94 -0)

📄 Description

Retain useful member-mutation regression coverage after the fixed-point propagation fix merged in #1390. Preserve the contributor's twelve-member reassignment-loop test and add compiled public CLI coverage for writes and escapes across eight, nine, and twelve conditional alias branches. Both the first and last affected children must remain unknown, while an unrelated sibling remains literal with complete projected return-shape coverage.

Review reproduced an accuracy defect in this PR's former eight-arrival cap: a 1,218-byte, source-owned JavaScript target with nine alias branches reported an affected child's return value as literal 1, with complete coverage. The same public CLI input on main 4d95f2b2 correctly reports unknown. Eight branches pass; nine and twelve fail on the capped implementation. Simply integrating main still retained the cap, so the follow-up removes that superseded runtime change and uses main's existing fixed-point owner unchanged. Overlapping module regressions already covered by main and the stronger CLI workflow are removed.

The final diff adds tests only. It does not reintroduce a propagation cap, change default Evidence, or claim a new runtime performance improvement. Contributor commits are preserved through a normal merge and follow-up.

Validation:

  • Independently compiled the original PR and latest frozen main, then ran the same inert directory targets through the public CLI. No target application code was executed. Compared exact projected export return shapes, including value status and coverage, rather than just successful exit codes.
  • New public CLI regression: eight branches passed and nine/twelve failed with the retained cap before the follow-up. All three now pass for write/escape effects, affected first/last children, and unaffected siblings. All 377 tests in eight semantic/CLI suites pass, including the contributor's retained twelve-member loop.
  • Full runtime compilation, full typechecking, lint/module boundaries, changed-file formatting and whitespace checks pass. Used the pinned compiler's documented --singleThreaded and the exact focused Vitest files serially under the local two-CPU and 2 GiB process-family budget; the focused lane peaked at 1.10 GiB, typechecking at 1.36 GiB. Test-discovery verification confirms all 704 test files are discovered exactly once, including the new boundary file.
  • No native-provider or private application verification is claimed. Final published-head CI must pass before merge.

Refs #1401 and #1065. Prepared with AI assistance.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/morluto/rea/pull/1414 **Author:** [@akushonkamen](https://github.com/akushonkamen) **Created:** 10/10/2026 **Status:** ❌ Closed **Base:** `main` ← **Head:** `fix-1401` --- ### 📝 Commits (4) - [`8a95fec`](https://github.com/morluto/rea/commit/8a95fecce1b2dab5204fee02203ee60a0fbb45a2) fix(javascript): dedupe member-mutation alias expansion through reassignment loops - [`af1c093`](https://github.com/morluto/rea/commit/af1c0939b2f30b531e54b1d3ddf8abeb43521a08) fix(javascript): expand distinct alias arrival paths under a bounded budget - [`f7ed8d4`](https://github.com/morluto/rea/commit/f7ed8d478ef9a8161077d836b49b7dd5f7e501c4) chore: integrate fixed-point member propagation from main - [`4c08a7d`](https://github.com/morluto/rea/commit/4c08a7d3b3bea9b9eb3684128cb77bbc6c757fb0) test(javascript): retain complete alias fanout through the CLI ### 📊 Changes **2 files changed** (+108 additions, -0 deletions) <details> <summary>View changed files</summary> 📝 `src/domain/javascript/javascriptSemanticAnalysis.reference_lifetimes.test.ts` (+14 -0) ➕ `tests/boundary/cli/javascriptMemberFanout.test.ts` (+94 -0) </details> ### 📄 Description Retain useful member-mutation regression coverage after the fixed-point propagation fix merged in #1390. Preserve the contributor's twelve-member reassignment-loop test and add compiled public CLI coverage for writes and escapes across eight, nine, and twelve conditional alias branches. Both the first and last affected children must remain unknown, while an unrelated sibling remains literal with complete projected return-shape coverage. Review reproduced an accuracy defect in this PR's former eight-arrival cap: a 1,218-byte, source-owned JavaScript target with nine alias branches reported an affected child's return value as literal `1`, with complete coverage. The same public CLI input on main `4d95f2b2` correctly reports unknown. Eight branches pass; nine and twelve fail on the capped implementation. Simply integrating main still retained the cap, so the follow-up removes that superseded runtime change and uses main's existing fixed-point owner unchanged. Overlapping module regressions already covered by main and the stronger CLI workflow are removed. The final diff adds tests only. It does not reintroduce a propagation cap, change default Evidence, or claim a new runtime performance improvement. Contributor commits are preserved through a normal merge and follow-up. Validation: - Independently compiled the original PR and latest frozen main, then ran the same inert directory targets through the public CLI. No target application code was executed. Compared exact projected export return shapes, including value status and coverage, rather than just successful exit codes. - New public CLI regression: eight branches passed and nine/twelve failed with the retained cap before the follow-up. All three now pass for write/escape effects, affected first/last children, and unaffected siblings. All 377 tests in eight semantic/CLI suites pass, including the contributor's retained twelve-member loop. - Full runtime compilation, full typechecking, lint/module boundaries, changed-file formatting and whitespace checks pass. Used the pinned compiler's documented `--singleThreaded` and the exact focused Vitest files serially under the local two-CPU and 2 GiB process-family budget; the focused lane peaked at 1.10 GiB, typechecking at 1.36 GiB. Test-discovery verification confirms all 704 test files are discovered exactly once, including the new boundary file. - No native-provider or private application verification is claimed. Final published-head CI must pass before merge. Refs #1401 and #1065. Prepared with AI assistance. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-17 21:11:12 +00:00
bsakaguchi changed title from [PR #1414] [CLOSED] test(javascript): preserve member-alias fanout and loop regressions to [PR #1414] test(javascript): preserve member-alias fanout and loop regressions 2026-11-03 13:28:36 +00:00
bsakaguchi changed title from [PR #1414] test(javascript): preserve member-alias fanout and loop regressions to [PR #1414] [CLOSED] test(javascript): preserve member-alias fanout and loop regressions 2026-11-03 14:30:29 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
morluto/rea#2868
No description provided.