Skip to content

fix: reconcile stops accusing real edges for common call shapes (#95, #96, #100) - #150

Merged
inth3shadows merged 2 commits into
mainfrom
fix/95-96-100-reconcile
Oct 30, 2026
Merged

inth3shadows merged 2 commits into
mainfrom
fix/95-96-100-reconcile

Conversation

@inth3shadows

Copy link
Copy Markdown
Owner

Fixes #95, fixes #96, fixes #100.

Reviewed by /code-review and a code-reviewer agent. The false-accusation and false-proof findings are fixed in e011b93; the over-support and cleanup findings are filed as #147–#149.

…96, #100)

#95: a METHOD callee is supported by any `x.<name>` reference (local,
parameter, class name, call result), the rule self./cls. already had; a
module-level FUNCTION callee stays strict, so the #66 shape still
refuses. Aliased imports resolve to the original name, and a sibling
closure (found on testgraph's own run: close_block -> note) counts.

#96: a traced co_qualname is matched against qualified_name (A.run ->
A::run, outer.<locals>.git -> outer::git); several same-named nodes with
no qualified match go to `ambiguous_symbols` instead of counting as run.

#100: find() trusts the indexed start_line only when the def there has
the node's name.
…om the #95/#96 changes

- F1: `from . import x as y` supports callee x (empty module = the
  package), as the unaliased spelling already did.
- F2: ambiguous traced symbols stay PRESENT for the runtime witness
  (dropping them turned oracle gaps into confirmed phantoms, and starved
  unit_vs_journey of covering tests); only the static-miss count uses the
  strict map without them.
- F3: a single same-file hit whose qualified_name contradicts the trace
  (B::run for A.run) is ambiguous, not credited as run.
- F4: find() judges the union of same-named defs; a stale start_line can
  land on another class's same-named method. by_line removed.
@inth3shadows
inth3shadows merged commit 6e4285d into main Oct 30, 2026
5 checks passed
@inth3shadows
inth3shadows deleted the fix/95-96-100-reconcile branch October 30, 2026 13:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant