Use non-range cover logic for eqq and include#7138
Merged
headius merged 1 commit intojruby:jruby-9.3from Mar 17, 2022
Merged
Conversation
Member
Author
|
Ok something is clearly not right with this patch. Will continue to investigate. |
d55c948 to
e66d27f
Compare
Member
Author
|
Created the PR wrong again, which is probably why it failed. 🤦♂️ |
This code has for years mistakenly dispatched to the full cover? logic, which considers intersecting ranges as being covered. The logic in CRuby, however, only uses a small part of the cover logic that does not accept ranges. The naming of the methods (in CRuby it's r_cover_p, and in JRuby that got mapped to the full cover_p method instead of the equivalent rangeInclude method) probably was confusing, or early in JRuby development CRuby's r_cover_p and our cover_p were equivalent and that changed over time in CRuby. This also eliminates a dynamic dispatch to `cover?` that does not exist in CRuby. Fixes jruby#7137
e66d27f to
331004a
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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 code has for years mistakenly dispatched to the full cover?
logic, which considers intersecting ranges as being covered. The
logic in CRuby, however, only uses a small part of the cover logic
that does not accept ranges. The naming of the methods (in CRuby
it's r_cover_p, and in JRuby that got mapped to the full cover_p
method instead of the equivalent rangeInclude method) probably
was confusing, or early in JRuby development CRuby's r_cover_p and
our cover_p were equivalent and that changed over time in CRuby.
This also eliminates a dynamic dispatch to
cover?that does notexist in CRuby.
Fixes #7137