def defs
bend-lint-rules@0.2.0.0 · performance/list_index_loop.bend:301
import bend-lint-rules@0.2.0.0/performance/list_index_loop.bend as ListIndexLoop
import Base
import bend-lint-api@0.2.0.0/linter/lint.bend as Lint
import bend-lint-api@0.2.0.0/shared/lists.bend as Lists
import bend-lint-api@0.2.0.0/shared/names.bend as Names
301def defs(
302 nodes: List<&2, Lint.Node>,
303 +walkers: List<&2, Names.Named<Walker>>,
304 out: List<&2, Lint.Finding>
305) -> List<&2, Lint.Finding>:
306 match nodes:
307 case Nil{}:
308 List.reverse(&2, Lint.Finding, out)
309 case Con{Lint.Node{Lint.Definition{t, u}, n, s, k, f}, rest}:
310 +owner = {Lint.Node{Lint.Definition{t, u}, n, s, k, f}: Lint.Node}
311 defs(
312 rest,
313 walkers,
314 Lists.onto(
315 &2,
316 Lint.Finding,
317 Lint.visit(~Loop, ~Lint.Finding, ~visit, Loop{walkers, owner}, [owner]),
318 out
319 )
320 )
321 case Con{node, rest}:
322 defs(rest, walkers, out)