inference: correctly translate inter-procedural information at everywhere #42847
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.
There are some remaining cases where we need to call
collect_limitations!
within
abstract_invoke
.Also it turns out we need to handle
InterConditional
in any inter-proceduralcontexts, so refactored that part within
abstract_call_gf_by_type
andapply the logic everywhere inter-procedural propagation happens.
Now
InterConditional
propagation and callsite argument type refinementare enabled for
invoke
and opaque closure call sites, e.g.: