This is a tool for advanced users. It captures dots, processes
unquoting and splicing operators, and evaluates them. Unlike
dots_list()
, it does not flatten spliced objects, instead they
are attributed a spliced
class (see splice()
). You can process
spliced objects manually, perhaps with a custom predicate (see
flatten_if()
).
Arguments
- ...
Arguments to evaluate and process splicing operators.
- .ignore_empty
Whether to ignore empty arguments. Can be one of
"trailing"
,"none"
,"all"
. If"trailing"
, only the last argument is ignored if it is empty.- .preserve_empty
Whether to preserve the empty arguments that were not ignored. If
TRUE
, empty arguments are stored withmissing_arg()
values. IfFALSE
(the default) an error is thrown when an empty argument is detected.- .homonyms
How to treat arguments with the same name. The default,
"keep"
, preserves these arguments. Set.homonyms
to"first"
to only keep the first occurrences, to"last"
to keep the last occurrences, and to"error"
to raise an informative error and indicate what arguments have duplicated names.- .check_assign
Whether to check for
<-
calls. WhenTRUE
a warning recommends users to use=
if they meant to match a function parameter or wrap the<-
call in curly braces otherwise. This ensures assignments are explicit.
Examples
dots <- dots_values(!!! list(1, 2), 3)
dots
#> [[1]]
#> <spliced>
#> [[1]]
#> [1] 1
#>
#> [[2]]
#> [1] 2
#>
#>
#> [[2]]
#> [1] 3
#>
# Flatten the objects marked as spliced:
flatten_if(dots, is_spliced)
#> Warning: `flatten_if()` is deprecated as of rlang 1.1.0.
#> This warning is displayed once every 8 hours.
#> [[1]]
#> [1] 1
#>
#> [[2]]
#> [1] 2
#>
#> [[3]]
#> [1] 3
#>