Block usage of for loops directly overwriting the indexing variable
Source:R/for_loop_index_linter.R
for_loop_index_linter.Rd
for (x in x)
is a poor choice of indexing variable. This overwrites
x
in the calling scope and is confusing to read.
See also
linters for a complete list of linters available in lintr.
Examples
# will produce lints
lint(
text = "for (x in x) { TRUE }",
linters = for_loop_index_linter()
)
#> ::warning file=<text>,line=1,col=6::file=<text>,line=1,col=6,[for_loop_index_linter] Don't re-use any sequence symbols as the index symbol in a for loop.
lint(
text = "for (x in foo(x, y)) { TRUE }",
linters = for_loop_index_linter()
)
#> ::warning file=<text>,line=1,col=6::file=<text>,line=1,col=6,[for_loop_index_linter] Don't re-use any sequence symbols as the index symbol in a for loop.
# okay
lint(
text = "for (xi in x) { TRUE }",
linters = for_loop_index_linter()
)
lint(
text = "for (col in DF$col) { TRUE }",
linters = for_loop_index_linter()
)