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)

Uses (13)

Used by (1)