approved these changes Sep 1, 2022
hadley marked this pull request as ready for review
September 13, 2022 16:19Closed
DavisVaughan added a commit that referenced this pull request
Mar 20, 2026Bug introduced in #6444 where `caller` was removed from the DataMask's private environment, not realizing that we referenced it in the C code. Switching to `env_get()` here revealed the bug, since it errors on unbound values. This did not cause us any problems before because we always passed a quosure to `rlang::eval_tidy()`, which immediately overwrites the `env` argument with the quosure's environment, so it overwrote our faulty `R_UnboundValue` input. I have now encoded this assumption up front with `check_quosure()`.
Merged
DavisVaughan added a commit that referenced this pull request
Apr 1, 2026* Do 1:1 replacement of `Rf_findVarInFrame()` with `env_get()` * Use `R_removeVarFromFrame()` not `rlang::env_unbind()`. Closes #7818. * Remove unused `quo_get_expr()` C callable import * Remove broken reliance on a `caller` environment that didn't exist! Bug introduced in #6444 where `caller` was removed from the DataMask's private environment, not realizing that we referenced it in the C code. Switching to `env_get()` here revealed the bug, since it errors on unbound values. This did not cause us any problems before because we always passed a quosure to `rlang::eval_tidy()`, which immediately overwrites the `env` argument with the quosure's environment, so it overwrote our faulty `R_UnboundValue` input. I have now encoded this assumption up front with `check_quosure()`. * Check for "used" bindings with new `R_GetBindingType()` API * Use new `R_MakeDelayedBinding()` to remove non-API promise utilities * We want `inherits = FALSE` in `R_getVar()` To match `Rf_findVarInFrame3()` * Remove stray include * NEWS bullet * Use `rlang_is_quosure` callable