def defs
bend-lint-rules@0.2.0.0 · language/unneeded_plus.bend:165
import bend-lint-rules@0.2.0.0/language/unneeded_plus.bend as UnneededPlus
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
165def defs(
166 nodes: List<&2, Lint.Node>,
167 +values: List<&2, String>,
168 out: List<&2, Lint.Finding>
169) -> List<&2, Lint.Finding>:
170 match nodes:
171 case Nil{}:
172 List.reverse(&2, Lint.Finding, out)
173 case Con{Lint.Node{Lint.Definition{+t, u}, n, s, k, f}, rest}:
174 +owner = {Lint.Node{Lint.Definition{t, u}, n, s, k, f}: Lint.Node}
175 defs(
176 rest,
177 values,
178 Lists.onto(
179 &2,
180 Lint.Finding,
181 Lint.visit(
182 ~Owner,
183 ~Lint.Finding,
184 ~visit,
185 Owner{values, t, Lint.visit(~Unit, ~U32, ~matched.visit, Unit{}, [owner])},
186 [owner]
187 ),
188 out
189 )
190 )
191 case Con{node, rest}:
192 defs(rest, values, out)