rlang (version 0.0.0.9000)

call_standardise: Standardise a call against formal arguments

Description

Compared to match.call(), call_standardise():
  • Always report dotted arguments as such: call(..1, ..2). In comparison, match.call() inlines literals: call("foo", 10).
  • Provides an argument enum_dots to impose enumerated names on dotted arguments. This produces call(..1 = x, ..2 = ..3) instead of call(foo = x, ..3).
  • Does not sort arguments according to the order of appearance in the function definition.
  • Standardises missing arguments as well if you specify add_missings: call(x = , y = , ).

Usage

call_standardise(call = NULL, fn = NULL, caller_env = NULL, enum_dots = FALSE, add_missings = FALSE)

Arguments

call
Can be a call, a formula quoting a call in the right-hand side, or a frame object from which to extract the call expression. If not supplied, the calling frame is used.
fn
The function against which to standardise the call. If not supplied, it is either retrieved from call if the latter is frame or formula (by looking up the formula's environment). Alternatively, it is lookep up in the calling frame if not supplied.
caller_env
Parent frame in which to look up call the contents of .... If not supplied and call is a frame object, it is retrieved from call.
enum_dots
Whether to standardise the names of dotted arguments. If TRUE, this produces calls such as f(..1 = ..2) instead of f(..2). The first form is mostly intended for code analysis tools as it makes it easier to climb arguments through nested calls. The latter form (the default) is more faithful to the actual call and is ready to be evaluated.
add_missings
Whether to standardise missing arguments.