[ruby-core:119242] [Ruby master Bug#20751] Regression in Prism related to use of super in default argument values

Issue #20751 has been reported by jeremyevans0 (Jeremy Evans). ---------------------------------------- Bug #20751: Regression in Prism related to use of super in default argument values https://bugs.ruby-lang.org/issues/20751 * Author: jeremyevans0 (Jeremy Evans) * Status: Open * Backport: 3.1: DONTNEED, 3.2: DONTNEED, 3.3: DONTNEED ---------------------------------------- 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: ```ruby 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
--
https://bugs.ruby-lang.org/

Issue #20751 has been updated by kddnewton (Kevin Newton). I believe this was fixed this morning. Could you double-check that this is still an issue? ---------------------------------------- Bug #20751: Regression in Prism related to use of return in default argument values https://bugs.ruby-lang.org/issues/20751#change-109825 * Author: jeremyevans0 (Jeremy Evans) * Status: Open * Backport: 3.1: DONTNEED, 3.2: DONTNEED, 3.3: DONTNEED ---------------------------------------- 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: ```ruby 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
--
https://bugs.ruby-lang.org/

Issue #20751 has been updated by jeremyevans0 (Jeremy Evans). 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/e98ea155960eb98649f3990da19635e63f52ba2... is not yet merged to ruby/ruby. I'll close this as I assume it will be merged to ruby/ruby soon. ---------------------------------------- Bug #20751: Regression in Prism related to use of return in default argument values https://bugs.ruby-lang.org/issues/20751#change-109826 * Author: jeremyevans0 (Jeremy Evans) * Status: Closed * Backport: 3.1: DONTNEED, 3.2: DONTNEED, 3.3: DONTNEED ---------------------------------------- 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: ```ruby 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
--
https://bugs.ruby-lang.org/
participants (2)
-
jeremyevans0 (Jeremy Evans)
-
kddnewton (Kevin Newton)