Issue #17764 has been updated by osyo (manga osyo).


firelzrd (Masahito Suzuki) wrote in #note-4:
> ¤´ÊÖÅú¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤¹¡£
> ¤´¼ç»Ý¡¢Íý²ò¤¤¤¿¤·¤Þ¤·¤¿¡£¤´¶µ¼¨¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤¹¡£¤ªÁû¤¬¤»¤¤¤¿¤·¤Þ¤·¤¿¡£
> 
> ¤Ä¤­¤Þ¤·¤Æ¤Ï¡¢º¹¤·»Ù¤¨¤Ê¤±¤ì¤Ð¡¢
> ­¡¥Ö¥í¥Ã¥¯°ú¿ô¤È¤·¤ÆÅϤµ¤ì¤¿proc¤ò¥á¥½¥Ã¥ÉÆâ¤ÇÊÑ¿ô¤È¤·¤Æ»²¾È¤·¤¿¤¤
> ­¢¥á¥½¥Ã¥É¸Æ¤Ó½Ð¤·»þ¤Î¥Ö¥í¥Ã¥¯°ú¿ô¤Ï¾Êά²Äǽ¤Ë¤·¤Æ¤ª¤­¤¿¤¤
> ¤È¤¤¤¦¥Ë¡¼¥º¤¬Î¾Î©¤¹¤ë¾ì¹ç¤Ë¤É¤Î¤è¤¦¤Ë¤¹¤ì¤Ð¤è¤¤¤«¡¢¥Ò¥ó¥È¤ò¤¤¤¿¤À¤±¤ì¤Ð¹¬¤¤¤Ç¤¹¡£
> 
> ­¡¤ò¼Â¸½¤¹¤ë¤À¤±¤Ê¤é¤Ð&¤ÎÉÕ¤¤¤¿¥Ö¥í¥Ã¥¯°ú¿ô¤ò¼è¤ì¤Ð¤è¤µ¤½¤¦¤Ç¤¹¤¬¡Ä
> 
> ¤¢¤ë¥á¥½¥Ã¥É¤Ë¥Ö¥í¥Ã¥¯¤¬ÅϤµ¤ì¤¿¾ì¹ç¤Ë¤Ïproc¤ò¥¤¥ó¥¹¥¿¥ó¥¹ÊÑ¿ô¤ËÂåÆþ¤·¤Æ¤ª¤¤¤Æ¡¢¸å¤Çcallback¤¹¤ë¡¢¤È¤¤¤¦»È¤¤Êý¤òÁÛÄꤷ¤Æ¤¤¤Þ¤¹¡£
> ²¿Â´¤´¶µ¼¨¤ò»ò¤ï¤ì¤ì¤Ð¹¬¤¤¤Ç¤¹¡£
> 
> °Ê¾å¤è¤í¤·¤¯¤ª´ê¤¤¤¤¤¿¤·¤Þ¤¹¡£
> 

¤ä¤ê¤¿¤¤¤³¤È¤È¤·¤Æ¤Ï¤³¤¦¤¤¤¦¤³¤È¤Ç¤·¤ç¤¦¤«¡©

```ruby
def foo(&block)
  # ¥Ö¥í¥Ã¥¯°ú¿ô¤¬¤Ê¤¤¾ì¹ç¤Ï block ¤Ï nil ¤Ë¤Ê¤ë
  puts (block ? block : proc{"¥Ö¥í¥Ã¥¯¤Ê¤·"}).call
end

foo #¥Ö¥í¥Ã¥¯¤Ê¤· => "¥Ö¥í¥Ã¥¯¤Ê¤·"
foo{"¥Ö¥í¥Ã¥¯¤¢¤ê"} # ¥Ö¥í¥Ã¥¯¤¢¤ê => "¥Ö¥í¥Ã¥¯¤¢¤ê"
```

----------------------------------------
Bug #17764: ¥Ö¥í¥Ã¥¯ÉÕ¤­¥á¥½¥Ã¥É¤Ë¤ª¤±¤ëproc(¤Þ¤¿¤Ï Proc.new)¤Î»²¾È¤¬ArgumentError¤òÅǤ¯ÌäÂê
https://bugs.ruby-lang.org/issues/17764#change-91196

* Author: firelzrd (Masahito Suzuki)
* Status: Closed
* Priority: Normal
* ruby -v: ruby 3.0.0p0 (2020-12-25 revision 95aff21468) [x86_64-linux]
* Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN, 3.0: UNKNOWN
----------------------------------------
# ¥Ö¥í¥Ã¥¯ÉÕ¤­¥á¥½¥Ã¥É¤Ë¤ª¤±¤ë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)


-- 
https://bugs.ruby-lang.org/