def defs
bend-lint-rules@0.2.0.0 · language/decreasing_call.bend:286
import bend-lint-rules@0.2.0.0/language/decreasing_call.bend as DecreasingCall
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
286
287def defs(
288 nodes: List<&2, Lint.Node>,
289 +text: String,
290 out: List<&2, Lint.Finding>
291) -> List<&2, Lint.Finding>:
292 match nodes:
293 case Nil{}:
294 List.reverse(&2, Lint.Finding, out)
295 case Con{Lint.Node{Lint.Definition{t, False{}}, n, s, +k, f}, rest}:
296 +owner = {Lint.Node{Lint.Definition{t, False{}}, n, s, k, f}: Lint.Node}
297 defs(
298 rest,
299 text,
300 Lists.onto(
301 &2,
302 Lint.Finding,
303 Lint.visit(
304 ~Loop,
305 ~Lint.Finding,
306 ~visit,
307 Loop{Param.all(k, []), Lint.visit(~Unit, ~U32, ~let, Unit{}, [owner]), text},
308 [owner]
309 ),
310 out
311 )
312 )
313 case Con{node, rest}:
314 defs(rest, text, out)