Issue #16370 has been updated by matz (Yukihiro Matsumoto).


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.


----------------------------------------
Feature #16370: Pattern matching with variable assignment (the priority of `in` operator)
https://bugs.ruby-lang.org/issues/16370#change-82815

* Author: jnchito (Junichi Ito)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
----------------------------------------
I wrote this code:

``` ruby
n = 0
ret = n in 99
p ret
```

I expected `ret` was `false` but was `0` (truthy value).

I had to write like this:

```ruby
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?




-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>