Remove rb_clear_method_cache_all() from Module#using #4323
Closed
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.
It seems it is no longer necessary with the call cache design from
Feature #16614. It should be okay
to cache refinement method entry because all it does is perform a
secondary uncached method lookup.
All the tests pass. Is it possible that some refinement tests are missing?
Update Feb 27th 2023:
I think this works because when enabling a refinement for a CREF, it's
still valid for callsites within the scope to cache lookups that terminate in a
VM_METHOD_TYPE_REFINED
. The logic for resolving refined definition isdone in an uncached secondary lookup after finding a
VM_METHOD_TYPE_REFINED
, soclearing all the ccs doesn't touch what the ultimate call target is
resolved to in any case.