Skip to content

fix(extract): resolve Java member calls by receiver type#1697

Open
oleksii-tumanov wants to merge 2 commits into
Graphify-Labs:v8from
oleksii-tumanov:fix/java-receiver-resolution
Open

fix(extract): resolve Java member calls by receiver type#1697
oleksii-tumanov wants to merge 2 commits into
Graphify-Labs:v8from
oleksii-tumanov:fix/java-receiver-resolution

Conversation

@oleksii-tumanov

Copy link
Copy Markdown
Contributor

Summary

  • preserve the receiver and static receiver type for Java member calls
  • resolve explicit type receivers, current-class fields, parameters, and typed locals with method-scoped bindings; skip ambiguous, inherited, and chained receivers

Fixes #1696

Result

run -> PaymentGateway.ping [EXTRACTED]
run -> PaymentGateway.charge [INFERRED]

The three charge() calls deduplicate to one edge, and no edge targets the same-named AuditLog methods.

Testing

  • uv run --frozen pytest tests/test_languages.py tests/test_java_type_resolution.py tests/test_java_member_calls.py -q -k java (35 passed, 309 deselected)
  • uv run --frozen pytest tests/ -q --tb=short (2893 passed, 29 skipped)
  • uv run --frozen ruff check graphify/extract.py tests/test_java_member_calls.py (passed)

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.

Java member calls lose receiver type information

1 participant