Actions
Bug #21048
closed
[Prism] rescue in modifier form with condition behaves differently
Description
With the following code there is a discrepancy in how prism and parse.y consider precedence:
$called = false
def foo
$called = true
end
foo rescue nil if false
puts "Called: #{$called}"
Prism interprets it as foo rescue (nil if false)
, calling the method. parse.y
does (foo rescue nil) if false
since at least Ruby 2.0
$ ruby -v
ruby 3.5.0dev (2025-01-19T12:44:20Z master f27ed98eff) +PRISM [x86_64-linux]
$ ruby code.rb
Called: true
$ ruby --parser=parse.y code.rb
Called: false
Actions
Like0
Like0Like0Like0Like0Like0Like0Like0Like0Like0