Skip to contents

Check for missing packages and symbols in namespace calls. Note that using check_exports=TRUE or check_nonexports=TRUE will load packages used in user code so it could potentially change the global state.

Usage

namespace_linter(check_exports = TRUE, check_nonexports = TRUE)

Arguments

check_exports

Check if symbol is exported from namespace in namespace::symbol calls.

check_nonexports

Check if symbol exists in namespace in namespace:::symbol calls.

See also

linters for a complete list of linters available in lintr.

Examples

# will produce lints
lint(
  text = "xyzxyz::sd(c(1, 2, 3))",
  linters = namespace_linter()
)
#> ::warning file=<text>,line=1,col=1::file=<text>,line=1,col=1,[namespace_linter] Package 'xyzxyz' is not installed.

lint(
  text = "stats::ssd(c(1, 2, 3))",
  linters = namespace_linter()
)
#> ::warning file=<text>,line=1,col=8::file=<text>,line=1,col=8,[namespace_linter] 'ssd' is not exported from {stats}.

# okay
lint(
  text = "stats::sd(c(1, 2, 3))",
  linters = namespace_linter()
)

lint(
  text = "stats::ssd(c(1, 2, 3))",
  linters = namespace_linter(check_exports = FALSE)
)

lint(
  text = "stats:::ssd(c(1, 2, 3))",
  linters = namespace_linter(check_nonexports = FALSE)
)