Check for a common mistake where length is applied in the wrong place
Source:R/length_test_linter.R
length_test_linter.Rd
Usage like length(x == 0)
is a mistake. If you intended to check x
is empty,
use length(x) == 0
. Other mistakes are possible, but running length()
on the
outcome of a logical comparison is never the best choice.
See also
linters for a complete list of linters available in lintr.
Examples
# will produce lints
lint(
text = "length(x == 0)",
linters = length_test_linter()
)
#> <text>:1:1: warning: [length_test_linter] Checking the length of a logical vector is likely a mistake. Did you mean `length(x) == 0`?
#> length(x == 0)
#> ^~~~~~~~~~~~~~
# okay
lint(
text = "length(x) > 0",
linters = length_test_linter()
)
#> ℹ No lints found.