Sometimes you just want to use ... to force your users to fully name the details arguments. This function fails if ... is not empty.

check_dots_empty(env = caller_env(), call = caller_env(), action = abort)

Arguments

env

Environment in which to look for ....

call

The execution environment of a currently running function, e.g. caller_env(). The function will be mentioned in error messages as the source of the error. See the call argument of abort() for more information.

action

The action to take when the dots have not been used. One of abort(), warn(), inform() or signal().

Examples

f <- function(x, ..., foofy = 8) { check_dots_empty() x + foofy } # This fails because `foofy` can't be matched positionally try(f(1, 4))
#> Error in f(1, 4) : `...` is not empty. #> These dots only exist to allow future extensions and should be empty. #> We detected these problematic arguments: #> `..1` #> Did you misspecify an argument?
# This fails because `foofy` can't be matched partially by name try(f(1, foof = 4))
#> Error in f(1, foof = 4) : `...` is not empty. #> These dots only exist to allow future extensions and should be empty. #> We detected these problematic arguments: #> `foof` #> Did you misspecify an argument?
# Thanks to `...`, it must be matched exactly f(1, foofy = 4)
#> [1] 5