# New Ticket Created by Zoffix Znet
# Please include the string: [perl #130959]
# in the subject line of all future correspondence about this issue.
# <URL: https://rt.perl.org/Ticket/Display.html?id=130959 >
The smartmatch needs to give True, as the element is present in that range:
20:18 IOninja m: say "1117-11" ~~ "1126-12" .. "2017-11"
20:18 camelia rakudo-moar 3046d5: OUTPUT: «False»
20:18 IOninja m: say "1117-11" ∈ "1126-12" .. "2017-11"
20:18 camelia rakudo-moar 3046d5: OUTPUT: «True»
The issue is that `before`/`after` comparators are used and the comparison
gives False, because
"1117-11" *is* before "1126-12" and supposedly out of range.
20:19 s: "1126-12" .. "2017-11", 'ACCEPTS', \("1117-11")
20:19 SourceBaby IOninja, Sauce is at
https://github.com/rakudo/rakudo/blob/3046d57/src/core/Range.pm#L419
20:21 IOninja m: dd [ (not "1117-11" before "1126-12"), (not
"1117-11" after "2017-11") ]
20:21 camelia rakudo-moar 3046d5: OUTPUT: «[Bool::False, Bool::True]»
P.S.: Range looks like it's itching to split into Int, Numeric, and Str
subclasses (with Ranged role tying them up or something).
P.P.S.: confusion with string Ranges is common, perhaps the weird stuff should
be left to the sequence op,
with Range doing something very simple.