From: kazuki@... Date: 2020-12-06T14:54:34+00:00 Subject: [ruby-core:101262] [Ruby master Feature#17371] Reintroduce `expr in pat` Issue #17371 has been reported by ktsj (Kazuki Tsujimoto). ---------------------------------------- Feature #17371: Reintroduce `expr in pat` https://bugs.ruby-lang.org/issues/17371 * Author: ktsj (Kazuki Tsujimoto) * Status: Open * Priority: Normal ---------------------------------------- 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. If `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. -- https://bugs.ruby-lang.org/ Unsubscribe: