Skip to contents

for (x in x) is a poor choice of indexing variable. This overwrites x in the calling scope and is confusing to read.

Usage

for_loop_index_linter()

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()
)