R/defer.R

# on.exit() for arbitrary parent frames
defer <- function(expr, envir = parent.frame()) {

  call <- substitute(
    base::evalq(expr, envir = envir),
    list(expr = substitute(expr), envir = parent.frame())
  )

  do.call(base::on.exit, list(call, add = TRUE), envir = envir)

}
slopp/renv documentation built on July 6, 2019, 12:08 a.m.