def defs
bend-lint-rules@0.2.0.0 · performance/loop_invariant_call.bend:267
import bend-lint-rules@0.2.0.0/performance/loop_invariant_call.bend as LoopInvariantCall
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
267def defs(
268 nodes: List<&2, Lint.Node>,
269 +loops: List<&2, String>,
270 out: List<&2, Lint.Finding>
271) -> List<&2, Lint.Finding>:
272 match nodes:
273 case Nil{}:
274 List.reverse(&2, Lint.Finding, out)
275 case Con{Lint.Node{Lint.Definition{+t, u}, n, s, +k, f}, rest}:
276 owner = {Lint.Node{Lint.Definition{t, u}, n, s, k, f}: Lint.Node}
277 defs(
278 rest,
279 loops,
280 Lists.onto(
281 &2,
282 Lint.Finding,
283 defs.if(
284 Bool.not(List.contains(~String, ~String.eq, loops, t)) || is_proof(k),
285 loops,
286 owner
287 ),
288 out
289 )
290 )
291 case Con{node, rest}:
292 defs(rest, loops, out)