In Ruby 2.2 and later, the expression x ? !y : z is successfully parsed without parse error.
Actual Behavior:
The latest version of the Parser gem (3.3.5.0) still follows the behavior of Ruby 2.1 and earlier, which raises a syntax error when attempting to parse x ? !y : z.
For example:
$ ruby-parse --22 -e 'x ? !y: z'
(fragment:0):1:6: error: unexpected token tLABEL
(fragment:0):1: x ? !y: z
(fragment:0):1: ^~
$ ruby-parse --33 -e 'x ? !y: z'
(fragment:0):1:6: error: unexpected token tLABEL
(fragment:0):1: x ? !y: z
(fragment:0):1: ^~
The following changes have been made between Ruby 2.1 and earlier and 2.2 and later:
Ruby 2.1 and earlier:
Ruby 2.2 and later:
Expected Behavior:
In Ruby 2.2 and later, the expression
x ? !y : z
is successfully parsed without parse error.Actual Behavior:
The latest version of the
Parser
gem (3.3.5.0) still follows the behavior of Ruby 2.1 and earlier, which raises a syntax error when attempting to parsex ? !y : z
.For example: