⛳
[bugs.ruby][Bug #20186] Ripepr で特定のキーワードがパースできなくなっているバグ報告
[Bug #20186] Ripper does not generate AST for some keywords in Ruby 3.3
- Ripper で特定のキーワードをパースしたときに Ruby 3.3 から AST の情報が取得できなくなっているというバグ報告
- 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
- この影響で
rufo
に影響がでているらしい - どれもトップレベルでは利用できないキーワードなんですが、内部ではどういう風に扱われるんですかねー
Discussion