Repository navigation
fix: reconcile stops accusing real edges for common call shapes (#95, #96, #100) - #150
Merged
Merged
Conversation
…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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #95, fixes #96, fixes #100.
phantom-confirmedfor common call shapes #95: a method callee is supported by anyx.<name>reference (a local, a parameter, a class name, a call result). A module-level function callee stays strict, so the CodeGraph: ledger.append has zero real inbound call edges; unrelated list.append() calls false-positive-link to it instead #66 shape still refuses. Aliased imports, includingfrom . import x as y, and sibling closures count as support.Class.methodresolved by bare name → false proof-grade STATIC MISS #96: a tracedco_qualnameis matched againstqualified_name. Several same-named nodes, or one whose qualified name contradicts the trace, go toambiguous_symbols. They count as present for the runtime witness but are left out of the static-miss count.find()judges the union of same-named defs and ignores a possibly stalestart_line.close_block → noteand an aliased_is_testimport).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.