Skip to content

fix: use SlithIR operations for external call classification in function summary - #3084

Open
0xrivet wants to merge 1 commit into
crytic:masterfrom
0xrivet:fix/function-summary-external-calls
Open

fix: use SlithIR operations for external call classification in function summary#3084
0xrivet wants to merge 1 commit into
crytic:masterfrom
0xrivet:fix/function-summary-external-calls

Conversation

@0xrivet

@0xrivet 0xrivet commented Aug 18, 2026

Copy link
Copy Markdown

The function-summary printer used expression-level call classification which incorrectly reported library calls (via using-for), abi.encode, and struct accesses as external calls.

Switch to filtering HighLevelCall and LowLevelCall SlithIR operations (excluding LibraryCall) which correctly resolve call semantics after the IR pass.

Changes:

  • function_contract.py: SlithIR-based filtering in get_summary()
  • function_top_level.py: same

Fixes #2073

…ion summary

The function-summary printer used expression-level call classification
which incorrectly reported library calls (via using-for), abi.encode,
and struct accesses as external calls.

Switch to filtering HighLevelCall and LowLevelCall SlithIR operations
(excluding LibraryCall) which correctly resolve call semantics after
the IR pass.

Fixes crytic#2073
@0xrivet
0xrivet requested a review from smonicas as a code owner August 18, 2026 20:54
@CLAassistant

CLAassistant commented Aug 18, 2026

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

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.

[Bug]: all statements with . are reported as external calls

2 participants