Project

General

Profile

Actions

Bug #17764

closed

ブロック付きメソッドにおけるproc(または Proc.new)の参照がArgumentErrorを吐く問題

Added by firelzrd (Masahito Suzuki) about 3 years ago. Updated 15 days ago.

Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 3.0.0p0 (2020-12-25 revision 95aff21468) [x86_64-linux]
[ruby-dev:51033]

Description

ブロック付きメソッドにおけるproc(または Proc.new)の参照がArgumentErrorを吐く問題
Ruby 3.0.0 linux x86-64およびWindows上のmingw-x86-64バイナリにて発生し、2.7.2-1ではいずれも発生しないことを確認済み。
また、2021/3/31現在、TryRubyサイト( https://try.ruby-lang.org/ ) の上でも発生することを確認済み。

def foo
  puts (block_given? ? proc : proc{"ブロックなし"}).call
end

# @ruby 3.0.0
foo #ブロックなし => "ブロックなし"
foo{"ブロックあり"} #ブロックあり => ArgumentError: tried to create Proc object without a block

# @ruby 2.7.2
foo #ブロックなし => "ブロックなし"
foo{"ブロックあり"} #ブロックあり => "ブロックあり"

Files

argumenterror.png (125 KB) argumenterror.png TryRubyサイトでの実行結果のスクリーンショット firelzrd (Masahito Suzuki), 03/31/2021 12:40 AM
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0Like0Like0