format_error_call {rlang} | R Documentation |
Validate and format a function call for use in error messages
Description
-
error_call()
takes either a frame environment or a call. If the input is an environment,error_call()
acts likeframe_call()
with some additional logic, e.g. for S3 methods and for frames with alocal_error_call()
. -
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.format_error_call()
first passes its input toerror_call()
to fetch calls from frame environments.
Usage
format_error_call(call)
error_call(call)
Arguments
call |
The execution environment of a currently
running function, e.g. |
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)))