fix(extract): shadow a single unparenthesised arrow parameter from indirect_call args - #2569
Graphify — looks good
Looks safe to merge — no coupling regressions and no blocking issues, checked against the code graph (not a self-assessment).
Details
Graphify reviewed this change.
Looks safe to merge — no coupling regressions and no blocking issues, checked against the code graph (not a self-assessment).
Graphify review — findings
This PR modifies _js_local_bound_names in the JavaScript extractor to also collect identifiers from an arrow function's singular parameter field, in addition to the existing parameters list field. This targets the case of single unparenthesised arrow parameters (e.g. x => f(x)), which previously had no parameters list node. It adds a new test file with five cases covering single-param, parenthesised, and async arrow forms, plus checks that genuine references outside the arrow and unshadowed references inside the arrow body still produce indirect_call edges. The changed-symbols list also references many other engine functions, but the diff shown only touches this one function and the new test file.
No blocking issues surfaced.
Analysis details — impact, health, verification
Impact & health
Graphify review
Impact — 590 functions depend on the 197 functions this change touches.
Health — grade A; 10 existing hotspot(s) in the area this change touches (pre-existing, not introduced here):
_extract_generic()— 18 callers, 22 callees (high)extract_xaml()— 19 callers, 17 callees (high)extract_objc()— 27 callers, 8 callees (high)extract_julia()— 16 callers, 7 callees (high)extract_vue()— 10 callers, 6 callees (high)walk()— 1 callers, 52 callees (high)extract_groovy()— 14 callers, 3 callees (high)extract_astro()— 6 callers, 5 callees (medium)- …and 2 more
Verification — 590 functions in the blast radius were not formally verified this run (proofs are advisory here).
Gate & verification
graphify gate
PASS — objectively clean (no health regressions, tests not run — proofs not run this pass (advisory)). Grounded, not self-assessed.
Advisory (not blocking):
- verification_scope: 531 function(s) in the blast radius were not formally verified this run