Check for an inconsistent number of arguments or arguments with incompatible types (for literal arguments) in
sprintf()
calls.
Details
gettextf()
calls are also included, since gettextf()
is a thin wrapper around sprintf()
.
See also
linters for a complete list of linters available in lintr.
Examples
# will produce lints
lint(
text = 'sprintf("hello %s %s %d", x, y)',
linters = sprintf_linter()
)
#> ::warning file=<text>,line=1,col=1::file=<text>,line=1,col=1,[sprintf_linter] too few arguments
# okay
lint(
text = 'sprintf("hello %s %s %d", x, y, z)',
linters = sprintf_linter()
)
lint(
text = 'sprintf("hello %s %s %d", x, y, ...)',
linters = sprintf_linter()
)