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 as_label()
, but note that as_label()
squashes quosures automatically). 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.