eval_tidy_ {rlang} | R Documentation |
We recommend using eval_tidy()
in your DSLs as much as possible
to ensure some consistency across packages (.data
and .env
pronouns, etc). However, some DSLs might need a different
evaluation environment. In this case, you can call eval_tidy_()
with the bottom and the top of your custom overscope (see
as_overscope()
for more information).
eval_tidy_(expr, bottom, top = NULL, env = caller_env())
expr |
An expression. |
bottom |
This is the environment (or the bottom of a set of
environments) containing definitions for overscoped symbols. The
bottom environment typically contains pronouns (like |
top |
The top environment of the overscope. During tidy evaluation, this environment is chained and rechained to lexical enclosures of self-evaluating formulas (or quosures). This is the mechanism that ensures hygienic scoping: the bindings in the overscope have precedence, but the bindings in the dynamic environment where the tidy quotes were created in the first place are in scope as well. |
env |
The lexical environment in which to evaluate |
Note that eval_tidy_()
always installs a .env
pronoun in the
bottom environment of your dynamic scope. This pronoun provides a
shortcut to the original lexical enclosure (typically, the dynamic
environment of a captured argument, see enquo()
). It also
cleans up the overscope after evaluation. See overscope_eval_next()
for evaluating several quosures in the same overscope.