😺
[Bug #18878] Foo::Bar {} が意図せずエラーになるというバグ報告
[Bug #18878] parse.y: Foo::Bar {} is inconsistently rejected
-
Foo::Bar {}が意図せずエラーになるというバグ報告- 報告があったのは3年前の Ruby 3.1 の時
class Foo
def self.Bar
end
end
Foo::Bar {}
__END__
output:
test.rb: --> test.rb
syntax error, unexpected '{'
> 6 Foo::Bar {}
test.rb:6: syntax error, unexpected '{' (SyntaxError)
Foo::Bar {}
^
- これなんですが Ruby 3.2 までは再現していたんですが Ruby 3.3 からはエラーにならなくなったみたいですね
- ただし、次のように
Foo::Bar {} + 1なコードはprismだと問題ないんですがparse.yだと依然として Ruby 3.4 でもSyntaxErrorになるみたいですね- ちなみに
Foo::Bar() {} + 1みたいなのは問題ない
- ちなみに
class Foo
def self.Bar
42
end
end
Foo::Bar {} + 1
# parse.y # => SyntaxError
# prism # => no error
Discussion