Reintroduce `expr in pat`
How about reintroducing
expr in pat, as akr-san proposed in DevelopersMeeting20201026Japan.
The difference between
expr => pat and new
expr in pat is the return value of the expression.
# expr => pat 0 => a #=> void (succeeded) 0 => 1 #=> NoMatchingPatternError (failed) # expr in pat 0 in a #=> true (succeeded) 0 in 1 #=> false (failed)
Motivation and use cases are described at [Feature #15865].
I pointed out that there is a concern that in this specification a user might overlook the pattern did not match, and changed the return value at [Feature #16355].
However, now we already have new "rightward assignment style" pattern matching syntax, so we can say that this problem is solved.
expr in pat is accepted, I also propose that the return value of
expr => pat on a successful match be the left-hand side value.
Because, in this case, it becomes more clear that the use of
expr => pat is assignment.