def Walker.helpers

bend-lint-rules@0.2.0.0 · performance/list_index_loop.bend:94

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

94# The definitions among `nodes` that give a parameter to a Base walker, as walkers, onto `out`.
95def Walker.helpers(
96  nodes: List<&2, Lint.Node>,
97  out: List<&2, Names.Named<Walker>>
98) -> List<&2, Names.Named<Walker>>:
99  match nodes:
100    case Nil{}:
101      out
102    case Con{Lint.Node{Lint.Definition{t, u}, n, s, k, f}, rest}:
103      +owner = {Lint.Node{Lint.Definition{t, u}, n, s, k, f}: Lint.Node}
104      Walker.helpers(
105        rest,
106        Lists.onto(
107          &2,
108          Names.Named<Walker>,
109          Lint.visit(~Lint.Node, ~Names.Named<Walker>, ~Walker.visit, owner, [owner]),
110          out
111        )
112      )
113    case Con{node, rest}:
114      Walker.helpers(rest, out)

Uses (8)

Used by (1)