Update methods
to specialize on mod
argument
#37838
Merged
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.
While investigating invenia/Intervals.jl#144 I noticed this invalidation:
An
AbstractRange{Module}
seemed strange so I did some digging and noticedm.method.module ∈ mod
inside ofmethods
. As far as I can tell nothing is actually creating aAbstractRange{Module}
but, possibly due to@nospecialize
, the compiler seems to be specializingin
calls for all possible arguments. (Note: this is purely theory crafting on my part)Restricting the argument to
Array
eliminates the invalidation. We could probably reduce the argument toVector
safely but that would require some changes to the docstring.