💭
[Bug #21661] ブロックのデフォルト引数で1行メソッド定義が定義できるバグ報告
[Bug #21661] Endless method definition as a default value of block parameter is wrongly accepted in Prism
- 次のように
Prismだとブロックのデフォルト引数で1行メソッド定義が定義できてしまうというバグ報告
proc do |a = def f = 1; b|
p f # => 1
end.call
p f # => 1
-
parse.yだとエラーになるので意図しない挙動みたいですね - このバグは Ruby 4.0 ですでに修正済み
- ちなみに通常のメソッド定義であれば
Prismでもparse.yでも動作する
proc do |a = def f; 1 end; b|
p f # => 1
end.call
# Prism => OK
# parse.y => OK
Discussion