Project

General

Profile

Feature #16370

Pattern matching with variable assignment (the priority of `in` operator)

Added by jnchito (Junichi Ito) about 2 months ago. Updated about 2 months ago.

Status:
Open
Priority:
Normal
Assignee:
-
Target version:
-
[ruby-core:95949]

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?


Related issues

Related to Ruby master - Feature #16355: Raise NoMatchingPatternError when `expr in pat` doesn't matchClosedActions

History

Updated by matz (Yukihiro Matsumoto) about 2 months 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.

#2

Updated by ktsj (Kazuki Tsujimoto) about 2 months ago

  • Related to Feature #16355: Raise NoMatchingPatternError when `expr in pat` doesn't match added

Also available in: Atom PDF