Check that integers are explicitly typed using the form 1L
instead of 1
.
Arguments
- allow_colon
Logical, default
FALSE
. IfTRUE
, expressions involving:
won't throw a lint regardless of whether the inputs are implicitly integers.
See also
linters for a complete list of linters available in lintr.
Examples
# will produce lints
lint(
text = "x <- 1",
linters = implicit_integer_linter()
)
#> ::warning file=<text>,line=1,col=7::file=<text>,line=1,col=7,[implicit_integer_linter] Use 1L or 1.0 to avoid implicit integers.
lint(
text = "x[2]",
linters = implicit_integer_linter()
)
#> ::warning file=<text>,line=1,col=4::file=<text>,line=1,col=4,[implicit_integer_linter] Use 2L or 2.0 to avoid implicit integers.
lint(
text = "1:10",
linters = implicit_integer_linter()
)
#> ::warning file=<text>,line=1,col=2::file=<text>,line=1,col=2,[implicit_integer_linter] Use 1L or 1.0 to avoid implicit integers.
#> ::warning file=<text>,line=1,col=5::file=<text>,line=1,col=5,[implicit_integer_linter] Use 10L or 10.0 to avoid implicit integers.
# okay
lint(
text = "x <- 1.0",
linters = implicit_integer_linter()
)
lint(
text = "x <- 1L",
linters = implicit_integer_linter()
)
lint(
text = "x[2L]",
linters = implicit_integer_linter()
)
lint(
text = "1:10",
linters = implicit_integer_linter(allow_colon = TRUE)
)