Squash a quosure
quo_squash()
flattens all nested quosures within an expression.
For example it transforms ^foo(^bar(), ^baz)
to the bare
expression foo(bar(), baz)
.
This operation is safe if the squashed quosure is used for
labelling or printing (see quo_label()
or quo_name()
). However
if the squashed quosure is evaluated, all expressions of the
flattened quosures are resolved in a single environment. This is a
source of bugs so it is good practice to set warn
to TRUE
to
let the user know about the lossy squashing.
quo_squash(quo, warn = FALSE)
quo |
A quosure or expression. |
warn |
Whether to warn if the quosure contains other quosures
(those will be collapsed). This is useful when you use
|
This function replaces quo_expr()
which was deprecated in
rlang 0.2.0. quo_expr()
was a misnomer because it implied that it
was a mere expression acccessor for quosures whereas it was really
a lossy operation that squashed all nested quosures.
# Quosures can contain nested quosures: quo <- quo(wrapper(!!quo(wrappee))) quo # quo_squash() flattens all the quosures and returns a simple expression: quo_squash(quo)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.