| literal_coercion_linter {lintr} | R Documentation |
Require usage of correctly-typed literals over literal coercions
Description
as.integer(1) (or rlang::int(1)) is the same as 1L but the latter is
more concise and gets typed correctly at compilation.
Usage
literal_coercion_linter()
Details
The same applies to missing sentinels like NA – typically, it is not
necessary to specify the storage type of NA, but when it is, prefer
using the typed version (e.g. NA_real_) instead of a coercion
(like as.numeric(NA)).
Tags
best_practices, consistency, efficiency
See Also
linters for a complete list of linters available in lintr.
Examples
# will produce lints
lint(
text = "int(1)",
linters = literal_coercion_linter()
)
lint(
text = "as.character(NA)",
linters = literal_coercion_linter()
)
lint(
text = "rlang::lgl(1L)",
linters = literal_coercion_linter()
)
# okay
lint(
text = "1L",
linters = literal_coercion_linter()
)
lint(
text = "NA_character_",
linters = literal_coercion_linter()
)
lint(
text = "TRUE",
linters = literal_coercion_linter()
)
[Package lintr version 3.1.2 Index]