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