Automatically sets exit handler to run when function terminates, checking
that all elements of ... have been evaluated. If you use on.exit()
elsewhere in your function, make sure to use add = TRUE so that you
don't override the handler set up by check_dots_used().
Environment in which to look for ... and to set up handler.
The action to take when the dots have not been used. One of
rlang::abort(), rlang::warn(), rlang::inform() or rlang::signal().
f <- function(...) {
check_dots_used()
g(...)
}
g <- function(x, y, ...) {
x + y
}
f(x = 1, y = 2)
#> [1] 3
try(f(x = 1, y = 2, z = 3))
#> Error in f(x = 1, y = 2, z = 3) : Arguments in `...` must be used.
#> ✖ Problematic argument:
#> • z = 3
#> ℹ Did you misspell an argument name?
try(f(x = 1, y = 2, 3, 4, 5))
#> Error in f(x = 1, y = 2, 3, 4, 5) :
#> Arguments in `...` must be used.
#> ✖ Problematic arguments:
#> • ..1 = 3
#> • ..2 = 4
#> • ..3 = 5
#> ℹ Did you misspell an argument name?