mirror of
https://github.com/morluto/rea
synced 2026-10-27 22:45:19 -04:00
feat(javascript): link assignment right-hand sides to their writes (#6206)
* feat(javascript): link assignment right-hand sides to their writes A declaration carries its value forward, but a later assignment to a variable, a property or through a compound operator stopped the forward trace at the right-hand-side read. The semantic IR now records one syntactic assignment flow per simple assignment target (ranges, operator, owning callable), and the graph projection connects each retained read of the right-hand side to the write occurrence through a defines relation. Compound assignments also consume the previous value of the target; the written value itself stays unknown, keeping the boundary of #4342 intact. Fixes #6193 * fix(javascript): preserve computed key assignment ownership * test(javascript): retain nested callback assignment ownership * docs(javascript): record assignment influence verification * test(mcp): isolate mocks and acknowledge cancellation boundaries * test(javascript): retain CLI diagnostics and current-main verification --------- Co-authored-by: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
This commit is contained in:
@@ -33,6 +33,10 @@ export function* projectSemanticObjects(
|
||||
operation,
|
||||
target.slotApplicability,
|
||||
);
|
||||
if (occurrence !== null) {
|
||||
if (operation.kind === "read") context.readNodes.push(occurrence);
|
||||
if (operation.kind === "write") context.writeNodes.push(occurrence);
|
||||
}
|
||||
const ends = objectRelationEnds(context, operation, occurrence, target);
|
||||
const resolved =
|
||||
operation.resolution === "complete" &&
|
||||
|
||||
Reference in New Issue
Block a user