Project

General

Profile

Actions

Bug #20593

closed

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

Added by byroot (Jean Boussier) 5 months ago. Updated 5 months ago.

Status:
Closed
Assignee:
-
Target version:
-
[ruby-core:118383]

Description

Kernel#format emits a warning when too many arguments are passed.

It does so for postional arguments, which make sense, as it could be indicative of a bug:

$VERBOSE = true
format("%s", 1, 2) #  warning: too many arguments for format string

And doesn't for keyword arguments, as it's much less likely to be a bug:

$VERBOSE = true
format("%{a}s", a: 1, unused: 2) # no warning

However it does emit a warning when passing keyword arguments, if none are used:

$VERBOSE = true
format("test", unused: 2) #  warning: too many arguments for format string

Which I believe is a bug, as it's common for format to take a user provided string to allow for safe interpolation, but with no intention to enforce any of the arguments to be interpolated.

So I think that last case shouldn't emit a warning.

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0