Move data mask cleaning from rlang to dplyr #3318
On the other hand, we might also use a C++ implementation of weak references.
To recap: We need to clean the data mask because otherwise a pointer to an object with limited lifetime might leak. We are not in control of the lifetime of the objects for which we share an
- Avoid cleaning the data mask, a temporary environment used to evaluate expressions. If the environment, in which e.g. a `mutate()` expression is evaluated, is preserved until after the operation, accessing variables from that environment now gives a warning but still returns `NULL` (#3318).