AbstractInterpreter: refactor abstract_call_method
-> abstract_call_method_with_const_args
chain
#41020
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.
This PR refactors the
abstract_call_method
->abstract_call_method_with_const_args
chain, and simplifies the signature of
abstract_call_method_with_const_args
:the newly defined
MethodCallResult
struct wraps a result and contextinformation of
abstract_method_call
, and is passed and consumedby the succeeding
abstract_call_method_with_const_args
.Although our constant-propagation heuristic will be likely to change in
the future (as in #40561) and so the signature of
abstract_call_method_with_const_args
is very unstable, hopefully this PR makes it a bit more stable.
As an additional benefit, now an external
AbstractInterpreter
can usethe context information of
abstract_method_call
(especiallyedge::MethodInstance
)within
maybe_get_const_prop_profitable
.