julia
046f11ed - AbstractInterpreter: refactor for `abstract_call_method` -> `abstract_call_method_with_const_args` chain (#41020)

Commit
4 years ago
AbstractInterpreter: refactor for `abstract_call_method` -> `abstract_call_method_with_const_args` chain (#41020) 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 context information of `abstract_method_call`, and is passed and consumed by 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 use the context information of `abstract_method_call` (especially `edge::MethodInstance`) within `maybe_get_const_prop_profitable`.
Author
Parents
Loading