undesirable_function_linter: Undesirable function linter

View source: R/undesirable_function_linter.R

undesirable_function_linterR Documentation

Undesirable function linter

Description

Report the use of undesirable functions and suggest an alternative.

Usage

undesirable_function_linter(
  fun = default_undesirable_functions,
  symbol_is_undesirable = TRUE
)

Arguments

fun

Character vector of undesirable function names. Input can be any of three types:

  • Unnamed entries must be a character string specifying an undesirable function.

  • For named entries, the name specifies the undesirable function.

    • If the entry is a character string, it is used as a description of why a given function is undesirable

    • Otherwise, entries should be missing (NA) A generic message that the named function is undesirable is used if no specific description is provided. Input can also be a list of character strings for convenience.

Defaults to default_undesirable_functions. To make small customizations to this list, use modify_defaults().

symbol_is_undesirable

Whether to consider the use of an undesirable function name as a symbol undesirable or not.

Tags

best_practices, configurable, robustness, style

See Also

linters for a complete list of linters available in lintr.

Examples

# defaults for which functions are considered undesirable
names(default_undesirable_functions)

# will produce lints
lint(
  text = "sapply(x, mean)",
  linters = undesirable_function_linter()
)

lint(
  text = "log10(x)",
  linters = undesirable_function_linter(fun = c("log10" = NA))
)

lint(
  text = "log10(x)",
  linters = undesirable_function_linter(fun = c("log10" = "use log()"))
)

lint(
  text = 'dir <- "path/to/a/directory"',
  linters = undesirable_function_linter(fun = c("dir" = NA))
)


lint(
  text = 'dir <- "path/to/a/directory"',
  linters = undesirable_function_linter(fun = "dir")
)

# okay
lint(
  text = "vapply(x, mean, FUN.VALUE = numeric(1))",
  linters = undesirable_function_linter()
)

lint(
  text = "log(x, base = 10)",
  linters = undesirable_function_linter(fun = c("log10" = "use log()"))
)

lint(
  text = 'dir <- "path/to/a/directory"',
  linters = undesirable_function_linter(fun = c("dir" = NA), symbol_is_undesirable = FALSE)
)

lint(
  text = 'dir <- "path/to/a/directory"',
  linters = undesirable_function_linter(fun = "dir", symbol_is_undesirable = FALSE)
)


jimhester/lintr documentation built on June 14, 2025, 1:27 a.m.