📝
[Bug #21153] ::Foo ||= p 1 が parse.y でシンタックスエラーになるバグ報告
[Bug #21153] ::Foo ||= p 1 should parse
-
Foo ||= p 1
だとエラーにならないんですが::Foo ||= p 1
がparse.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 ですでに修正済
- Ruby 3.4 にもバックポートされそう
Discussion