Project

General

Profile

ActionsLike0

Bug #20751

closed

Regression in Prism related to use of return in default argument values

Added by jeremyevans0 (Jeremy Evans) 8 months ago. Updated 8 months ago.

Status:
Closed
Assignee:
-
Target version:
-
[ruby-core:119242]

Description

All versions of parse.y dating at least back to Ruby 1.8.7, and Prism in both Ruby 3.3.5 and 3.4.0preview1, correctly parses this code:

class A
  def foo(b = nil || (return))
  end
end

The master branch, unless --parser=parse.y is used, now considers this a SyntaxError:

-: -:2: syntax error found (SyntaxError)
  1 | class A
> 2 |   def foo(b = nil || (return))
    |                       ^~~~~~ Invalid return in class/module body
  3 |   end
  4 | end
Like0Actions #1

Updated by jeremyevans0 (Jeremy Evans) 8 months ago

  • Subject changed from Regression in Prism related to use of super in default argument values to Regression in Prism related to use of return in default argument values

Updated by kddnewton (Kevin Newton) 8 months ago

I believe this was fixed this morning. Could you double-check that this is still an issue?

Updated by jeremyevans0 (Jeremy Evans) 8 months ago

  • Status changed from Open to Closed

kddnewton (Kevin Newton) wrote in #note-2:

I believe this was fixed this morning. Could you double-check that this is still an issue?

Looks like it is fixed in ruby/prism, but not ruby/ruby, since https://github.com/ruby/prism/commit/e98ea155960eb98649f3990da19635e63f52ba28 is not yet merged to ruby/ruby. I'll close this as I assume it will be merged to ruby/ruby soon.

ActionsLike0

Also available in: Atom PDF