fn_body() is a simple wrapper around base::body(). It always returns a \{ expression and throws an error when the input is a primitive function (whereas body() returns NULL). The setter version preserves attributes, unlike body<-.

fn_body(fn = caller_fn())

fn_body(fn) <- value



A function. It is looked up in the calling frame if not supplied.


New formals or formals names for fn.


# fn_body() is like body() but always returns a block: fn <- function() do() body(fn)
#> do()
#> { #> do() #> }
# It also throws an error when used on a primitive function: try(fn_body(base::list))
#> Error in fn_body(base::list) : #> `fn` must be an R function, not a primitive function.