
Issue #20785 has been updated by ktsj (Kazuki Tsujimoto). Assignee changed from ktsj (Kazuki Tsujimoto) to matz (Yukihiro Matsumoto) I agree with tompng's proposal.
I'm guessing that `a in b`, is parsed as `a in [b,]` but a trailing comma like that is just too wild for me
`in` (`=>`) can be considered right assignment. And, I think it makes sense that a trailing comma is allowed in right assignment, just as a trailing comma is allowed in normal assignment. ```ruby a => b, # one-line pattern matching as right assignment b, = a # normal assignment ``` What do you think, @matz? ---------------------------------------- Bug #20785: Should `a in b, and c` `a in b, or c` `a in b, rescue c` be syntax ok? https://bugs.ruby-lang.org/issues/20785#change-110086 * Author: tompng (tomoya ishida) * Status: Open * Assignee: matz (Yukihiro Matsumoto) * ruby -v: ruby 3.4.0dev (2024-10-04T03:22:53Z master 939ec9f080) +YJIT +MN +PRISM [arm64-darwin22] * Backport: 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN ---------------------------------------- This code is accepted in parse.y but rejected in prism ~~~ruby tap do a in b, and c a in b, or c a in b, rescue c end # parsed as tap do (a in b,;) and c (a in b,;) or c a in b,; rescue c end ~~~ I think these should be rejected like prism (parse.y accepts) ~~~ruby a in b, and c a in b, and c tap do a in b, rescue c end ~~~ I think these should be accepted like parse.y (prism rejects) ~~~ruby tap do a in b, end tap do a in b, rescue end ~~~ -- https://bugs.ruby-lang.org/