R: Validate and format a function call for use in error messages

format_error_call {rlang} | R Documentation

## Validate and format a function call for use in error messages

### Description

`format_error_call()` simplifies its input to a simple call (see section below) and formats the result as code (using cli if available). Use this function to generate the "in" part of an error message from a stack frame call.

If passed an environment, the corresponding `sys.call()` is taken as call, unless there is a local flag (see `local_error_call()`).

### Usage

    format_error_call(call)

### Arguments

`call` | The execution environment of a currently running function, e.g. `caller_env()`. The function will be mentioned in error messages as the source of the error. See the `call` argument of `abort()` for more information.

### Value

Either a string formatted as code or `NULL` if a simple call could not be generated.

### Details of formatting

- The arguments of function calls are stripped.

- Complex function calls containing inlined objects return `NULL`.

- Calls to `if` preserve the condition since it might be informative. Branches are dropped.

- Calls to operators and other special syntax are formatted using their names rather than the potentially confusing function form.

### Examples

    # Arguments are stripped
    writeLines(format_error_call(quote(foo(bar, baz))))

    # Returns `NULL` with complex calls such as those that contain
    # inlined functions
    format_error_call(call2(list))

    # Operators are formatted using their names rather than in
    # function call form
    writeLines(format_error_call(quote(1 + 2)))

[Package rlang version 1.0.2 Index]