Skip to content

feat(parser): resolve typed member calls with import evidence#649

Merged
tirth8205 merged 1 commit into
mainfrom
codex/port-typed-call-resolution
Jul 17, 2026
Merged

feat(parser): resolve typed member calls with import evidence#649
tirth8205 merged 1 commit into
mainfrom
codex/port-typed-call-resolution

Conversation

@tirth8205

@tirth8205 tirth8205 commented Jul 17, 2026

Copy link
Copy Markdown
Owner

Summary

  • Resolves static class and typed receiver calls only when same-file or repository-local import evidence identifies the target.
  • Supports Python, Kotlin, Java, JavaScript, TypeScript, and TSX while preserving function, class, and block scope.
  • Keeps uncertain receiver calls as bare CALLS edges instead of deleting or guessing them.
  • Records receiver type and resolution evidence on qualified edges.

Reconciliation

This ports the safe intent from #330 and #338 and preserves attribution to Gideon Zenz in the commit trailer.

It deliberately does not port:

The branch is rebased onto current main commit 31feb78 and includes the Julia parser reconciliation from #647. The parser conflict was resolved by preserving the Julia lexical/qualified-call resolver unchanged and applying typed-receiver handling only to its six supported non-Julia languages.

Verification

  • 37 focused typed-receiver and Julia reconciliation tests passed.
  • 565 parser, language, notebook, Laravel, Julia, and focused receiver tests passed.
  • 1 existing process-pool sandbox test was deselected locally; 2 existing tests xpassed.
  • Ruff lint passed for production and test changes.
  • Ruff format check passed for the new test file.
  • Python syntax compilation and git diff checks passed.
  • Hosted CI passed lint, review, type-check, schema, security, Python 3.10 through 3.13, GitGuardian, and Windows daemon/file-handle jobs.

A full local run also reproduced the already-tracked macOS iCloud ConfigWatcher native crash in crg-799; hosted CI is the authoritative full-suite run.

@github-actions

github-actions Bot commented Jul 17, 2026

Copy link
Copy Markdown

code-review-graph review

Overall risk: 0.40 (MEDIUM) — 29 changed function(s)/class(es), 0 affected flow(s), 19 test gap(s)

Risk-scored changes

Risk Level Symbol Location Tested
0.40 medium code_review_graph/parser.py::CodeParser code_review_graph/parser.py:983 no
0.40 medium code_review_graph/parser.py::CodeParser._resolve_call_targets code_review_graph/parser.py:2448 no
0.40 medium code_review_graph/parser.py::CodeParser.walk code_review_graph/parser.py:2653 no
0.40 medium code_review_graph/parser.py::CodeParser._typed_bindings_from_node code_review_graph/parser.py:2814 no
0.40 medium code_review_graph/parser.py::CodeParser._store_typed_binding code_review_graph/parser.py:2898 no
0.40 medium code_review_graph/parser.py::CodeParser._base_type_name code_review_graph/parser.py:2909 no
0.40 medium code_review_graph/parser.py::CodeParser._extract_calls code_review_graph/parser.py:6022 no
0.40 medium code_review_graph/parser.py::CodeParser._get_member_call_receiver_method code_review_graph/parser.py:6201 no
0.40 medium code_review_graph/parser.py::CodeParser._collect_file_scope code_review_graph/parser.py:7304 no
0.40 medium code_review_graph/parser.py::CodeParser._collect_import_names code_review_graph/parser.py:7638 no

Test gaps

  • code_review_graph/parser.py::CodeParser (code_review_graph/parser.py:983)
  • code_review_graph/parser.py::CodeParser.parse_bytes (code_review_graph/parser.py:1149)
  • code_review_graph/parser.py::CodeParser._resolve_call_targets (code_review_graph/parser.py:2448)
  • code_review_graph/parser.py::CodeParser._collect_typed_call_targets (code_review_graph/parser.py:2623)
  • code_review_graph/parser.py::CodeParser.walk (code_review_graph/parser.py:2653)
  • ...and 14 more without direct tests

Token savings: this graph-backed report used ~93,399 fewer tokens (~94%) than reading every changed file in full (estimated, chars/4 approximation).


Powered by code-review-graph — local-first analysis; no code leaves the CI runner.

@tirth8205
tirth8205 force-pushed the codex/port-typed-call-resolution branch from 1e2922a to 2c53d95 Compare July 17, 2026 17:02
Co-authored-by: Gideon Zenz <91069374+gzenz@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant