👻

[Bug #20593] Kernel#format の警告が間違っているというバグ報告

2024/07/03に公開

[Bug #20593] Kernel#format emits a too many arguments for format string warning when called with a single hash and no key is used

  • 以下のように Kernel#format に位置引数を渡したときにその値が使用されていない場合に警告がでます
$VERBOSE = true

# warning: too many arguments for format string
format("%s", 1, 2)
  • ただし、キーワード引数の場合は警告はでない
    • バグの可能性が低いかららしい?
    • 位置引数と違って『意図しない値』を渡す可能性が低いかららしい
$VERBOSE = true

# no warning
format("%{a}s", a: 1, unused: 2)
  • しかし、次のように『キーワード引数が1つも使われいない場合』には警告がでてくるというバグ報告
$VERBOSE = true

# warning: too many arguments for format string
format("test", unused: 2)
  • 上記の場合は『警告がでないこと』を期待するみたいですね
  • 個人的には警告を出すようにしちゃったほうが一貫性がある気がするんですが、ノイズになるんですかねー
GitHubで編集を提案

Discussion