File: cli-errors.R

package info (click to toggle)
r-cran-cli 3.6.5-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 4,300 kB
  • sloc: ansic: 16,412; cpp: 37; sh: 13; makefile: 2
file content (36 lines) | stat: -rw-r--r-- 784 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36

cli_error <- function(..., .data = NULL, .class = NULL, .envir = parent.frame(),
                      call. = TRUE) {
  .hide_from_trace <- TRUE
  cnd <- new_error(
    call. = call.,
    format_error(
      .envir = .envir,
      c(
        ...
      )
    )
  )

  if (length(.data)) cnd[names(.data)] <- .data
  if (length(class)) class(cnd) <- c(.class, class(cnd))

  cnd
}

stop_if_not <- function(message, ..., .envir = parent.frame(),
                        call. = sys.call(-1)) {
  conds <- list(...)
  for (cond in conds) {
    if (!cond) {
      throw(
        new_error(format_error(.envir = .envir, message), call. = call.),
        frame = .envir
      )
    }
  }
}

`%??%` <- function(expr, err) {
  chain_error(expr, err, srcref = utils::getSrcref(sys.call()))
}