Repository navigation
fix(elixir): emit calls edges for keyword-form def bodies - #4210
rtmalikian wants to merge 1 commit into
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
Fixes dropped calls edges for keyword-form Elixir definitions (def a(x), do: b(x)) by having _get_do_keyword_body pull the do: value out of the arguments keywords and queue it for the call walk whenever a definition has no do_block. This also covers when-guarded heads. Definitions with neither form register no body, same as before. New tests check that keyword bodies produce edges to local functions and no edges to undefined ones.
No blocking issues surfaced. 1 lower-confidence candidate did not survive cross-model review.
Analysis details — impact, health, verification
Impact & health
Graphify review
Impact — 37 functions depend on the 25 functions this change touches.
Health — this change adds coupling hotspots:
- new:
extract_elixir()— 14 callers, 6 callees - new:
walk()— 1 callers, 7 callees
Verification — 37 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: 37 function(s) in the blast radius were not formally verified this run
Test selection
Test selection
2 of 345 test file(s) selected (1%) via static blast radius.
tests/test_elixir_keyword_def_calls.py— impact, changed-testtests/test_languages.py— impact
Selection is safe under the controlled-regression assumption; always-run tests + a periodic full run are the backstops. Advisory — it never changes the check verdict.