Actions
Feature #16370
openPattern matching with variable assignment (the priority of `in` operator)
    Feature #16370:
    Pattern matching with variable assignment (the priority of `in` operator)
  
Status:
Open
Assignee:
-
Target version:
-
Description
I wrote this code:
n = 0
ret = n in 99
p ret
I expected ret was false but was 0 (truthy value).
I had to write like this:
n = 0
ret = (n in 99)
p ret #=> false
However, I would like to write ret = n in 99 because it is more natural for me, and I am afraid many people might mistake like me. Could you reconsider the priority of in operator?
        
          
          Updated by matz (Yukihiro Matsumoto) almost 6 years ago
          
          
        
        
      
      We have discussed about in-line pattern matching and made a decision that it should cause an exception instead of returning false. So this issue will disappear.
We might need to talk about the precedence for e.g. a = n in 99 rescue nil.
Matz.
        
          
          Updated by ktsj (Kazuki Tsujimoto) almost 6 years ago
          
          
        
        
      
      - Related to Feature #16355: Raise NoMatchingPatternError when `expr in pat` doesn't match added
 
Actions