💬

[Bug #20955] _1 と it で Proc#parameters の挙動に差異があるというバグ報告

2024/11/24に公開

[Bug #20955] Subtle differences with Proc#parameters for anonymous parameters

  • _1itProc#parameters の挙動に差異があるというバグ報告
p proc { |x| }.parameters   #=> [[:opt, :x]]
p lambda { |x| }.parameters #=> [[:req, :x]]
p proc { _1 }.parameters    #=> [[:opt, :_1]]
p lambda { _1 }.parameters  #=> [[:req, :_1]]
p proc { it }.parameters    #=> [[:opt, nil]]
p lambda { it }.parameters  #=> [[:req]]
  • it の場合だと proc で名前が nil になっていたり lambda にはそもそも nil すらなかったりするのが問題みたいですね
  • 実際には以下のように動作するのを期待する感じですかねー
proc { it }.parameters    #=> [[:opt, :it]]
lambda { it }.parameters  #=> [[:req, :it]]
GitHubで編集を提案

Discussion