Problem
When a nested split is described inside a parent branch, the precomputed join for the nested split can point to a node that is only reachable after the parent merge. In that shape, describe treats parent continuation as part of the nested branch.
This can move shared continuation into an else block and change the apparent control-flow structure. For return-valued microflows, that can also make one path appear to miss its required return after a describe/exec/describe roundtrip.
Expected
Nested split traversal should stop at the active parent merge when the computed nested join is downstream of that parent merge.
Reproducer
A synthetic graph with:
- parent split merge A
- nested split computed join B
- A reaches B
- at least one nested branch reaches A
should describe the nested split against A, not consume B as a local nested join.
Validation
Add regression coverage for resolving downstream nested joins to the parent merge and for keeping independent local nested joins unchanged.
Problem
When a nested split is described inside a parent branch, the precomputed join for the nested split can point to a node that is only reachable after the parent merge. In that shape,
describetreats parent continuation as part of the nested branch.This can move shared continuation into an
elseblock and change the apparent control-flow structure. For return-valued microflows, that can also make one path appear to miss its required return after a describe/exec/describe roundtrip.Expected
Nested split traversal should stop at the active parent merge when the computed nested join is downstream of that parent merge.
Reproducer
A synthetic graph with:
should describe the nested split against A, not consume B as a local nested join.
Validation
Add regression coverage for resolving downstream nested joins to the parent merge and for keeping independent local nested joins unchanged.