**Root Cause:** `impact_analysis("Class.method")` returned 0 callers because the parser intentionally emits BARE callee (`_extract_callee_name`, parser.py:1239-1247, takes last identifier → `list_articles` for `self.devto.list_articles()`), while the definition node is QUALIFIED (`DevToClient.list_articles`). `_candidate_starts` only fanned out to full-qualified matches (`%.DevToClient.list_articles`), so the bare node holding the real CALLS edges never entered the BFS start set — blast radius systematically under-estimated for any object-method call. Confirmed by real parser run on DEV.to/core/pipeline.py:85/135 → callee `list_articles` (bare).
0 commit comments