env_bury: Mask bindings by defining symbols deeper in a scope

View source: R/lifecycle-superseded.R

env_buryR Documentation

Mask bindings by defining symbols deeper in a scope

Description

[Superseded]

This function is superseded. Please use env() (and possibly set_env() if you're masking the bindings for another object like a closure or a formula) instead.

env_bury() is like env_bind() but it creates the bindings in a new child environment. This makes sure the new bindings have precedence over old ones, without altering existing environments. Unlike env_bind(), this function does not have side effects and returns a new environment (or object wrapping that environment).

Usage

env_bury(.env, ...)

Arguments

.env

An environment.

...

<dynamic> Named objects (env_bind()), expressions env_bind_lazy(), or functions (env_bind_active()). Use zap() to remove bindings.

Value

A copy of .env enclosing the new environment containing bindings to ... arguments.

See Also

env_bind(), env_unbind()

Examples

orig_env <- env(a = 10)
fn <- set_env(function() a, orig_env)

# fn() currently sees `a` as the value `10`:
fn()

# env_bury() will bury the current scope of fn() behind a new
# environment:
fn <- env_bury(fn, a = 1000)
fn()

# Even though the symbol `a` is still defined deeper in the scope:
orig_env$a

rlang documentation built on Nov. 4, 2023, 9:06 a.m.