📝

[Bug #21153] ::Foo ||= p 1 が parse.y でシンタックスエラーになるバグ報告

2025/02/24に公開

[Bug #21153] ::Foo ||= p 1 should parse

  • Foo ||= p 1 だとエラーにならないんですが ::Foo ||= p 1parse.y だとシンタックスエラーになるというバグ報告
% ./miniruby --parser=parse.y -e "Foo ||= p 1"
1
% ./miniruby --parser=parse.y -e "::Foo ||= p 1"
-e:1: syntax error, unexpected integer literal, expecting 'do' or '{' or '('
::Foo ||= p 1
./miniruby: compile error (SyntaxError)
  • これは prism だとエラーにはならないみたいですね
% ./miniruby --parser=prism -e "Foo ||= p 1"
1
% ./miniruby --parser=prism -e "::Foo ||= p 1"
1
  • これ、昔からシンタックスエラーだったみたいですね
  • これは開発版の Ruby 3.5-dev ですでに修正済
GitHubで編集を提案

Discussion