R/utils-errors.R

Defines functions local_error_stop local_error_cnd local_error_call

local_error_call <- function() {
  sys_calls <-
    sys.calls()

  assignment_calls <-
    grepl("(%<-%|%->%)", as.character(sys_calls))

  if (!any(assignment_calls)) {
    return()
  }

  sys_calls[assignment_calls][[1]]
}

local_error_cnd <- function(msg) {
  errorCondition(
    message = msg,
    class = "zeallot_assignment_error",
    call = local_error_call()
  )
}

local_error_stop <- function(..., sep = "", collapse = "\n") {
  stop(
    local_error_cnd(
      paste(..., sep = sep, collapse = collapse)
    )
  )
}
r-lib/zeallot documentation built on June 12, 2025, 9:40 p.m.