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)

Uses (11)

Used by (1)