Issue #20186 has been updated by rdimartino (Robert DiMartino).
Another case of this causing a problem
https://github.com/davidwessman/syntax_tree-erb/issues/81
Relevant commits, I believe:
https://github.com/ruby/ruby/commit/e1250a5f9778f463a541bc1ee5a951f64c131bbf
https://github.com/ruby/ruby/commit/29e5fca7181de5f0db372374d5f39704f81f2731
https://github.com/ruby/ruby/commit/b5e23d3e3b5ff2f5328aa43a2392ebe7c951a222
----------------------------------------
Bug #20186: Ripper does not generate AST for some keywords in Ruby 3.3
https://bugs.ruby-lang.org/issues/20186#change-108102
* Author: kzkn (Kazuki Nishikawa)
* Status: Open
* ruby -v: 3.3.0
* Backport: 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN
----------------------------------------
Ripper does not generate AST for the below keyword:
- break
- next
- redo
- retry
- yield
Ruby 3.2
```
$ ruby -v
ruby 3.2.2 (2023-03-30 revision e51014f9c0) [x86_64-linux]
$ ruby -rripper -e "p Ripper.sexp('break')"
[:program, [[:break, []]]]
$ ruby -rripper -e "p Ripper.sexp('next')"
[:program, [[:next, []]]]
$ ruby -rripper -e "p Ripper.sexp('redo')"
[:program, [[:redo]]]
$ ruby -rripper -e "p Ripper.sexp('retry')"
[:program, [[:retry]]]
$ ruby -rripper -e "p Ripper.sexp('yield')"
[:program, [[:yield0]]]
```
Ruby 3.3
```
$ ruby -v
ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [x86_64-linux]
$ ruby -rripper -e "p Ripper.sexp('break')"
nil
$ ruby -rripper -e "p Ripper.sexp('next')"
nil
$ ruby -rripper -e "p Ripper.sexp('redo')"
nil
$ ruby -rripper -e "p Ripper.sexp('retry')"
nil
$ ruby -rripper -e "p Ripper.sexp('yield')"
nil
```
EDIT)
Here is a case of real-world problem:
https://github.com/ruby-formatter/rufo/issues/319
--
https://bugs.ruby-lang.org/