The 0-suffixed variants of enquo() and enquos() defuse function
arguments without automatic injection (unquotation). They are
useful when defusing expressions that potentially include !!,
!!!, or {{ operations, for instance tidyverse code. In that
case, enquo() would process these operators too early, creating a
confusing experience for users. Callers can still inject objects
or expressions using manual injection with inject().
enquo0(arg) enquos0(...)
| arg | A symbol for a function argument to defuse. |
|---|---|
| ... | Dots to defuse. |
None of the features of dynamic dots are available when
defusing with enquos0(). For instance, trailing empty arguments
are not automatically trimmed.
automatic_injection <- function(x) enquo(x) no_injection <- function(x) enquo0(x) automatic_injection(foo(!!!1:3))#> <quosure> #> expr: ^foo(1L, 2L, 3L) #> env: 0x5616ebab68d8no_injection(foo(!!!1:3))#> <quosure> #> expr: ^foo(!!!1:3) #> env: 0x5616ebab68d8