📌
[Bug #20649] Ripper.tokenize で意図しないエラーになるバグ報告
[Bug #20649] Ripper fails to tokenize def f; (x)::A =
-
Ripper.tokenize
にdef f; (x)::A =
を渡すと Ripper 内部でエラーになるというバグ報告
require "ripper"
# error: `on_error2': undefined method `pos' for nil (NoMethodError)
pp Ripper.tokenize 'def f; (x)::A ='
-
x::A
だとエラーにならないので()
がついているのが原因ぽいですかね? - これは開発版の Ruby 3.4 だとすでに修正済みです
require "ripper"
pp Ripper.tokenize 'def f; (x)::A ='
# Ruby 3.3 => error: `on_error2': undefined method `pos' for nil (NoMethodError)
# Ruby 3.4 => ["def", " ", "f", ";", " ", "(", "x", ")", "::", "A", " ", "="]
Discussion