def defs
bend-lint-rules@0.2.0.0 · performance/repeated_call.bend:258
import bend-lint-rules@0.2.0.0/performance/repeated_call.bend as RepeatedCall
import Base
import bend-lint-api@0.2.0.0/linter/lint.bend as Lint
import bend-lint-rules@0.2.0.0/performance/loop_invariant_call.bend as Invariant
258def defs(
259 nodes: List<&2, Lint.Node>,
260 +loops: List<&2, String>,
261 +program: Map<&2, Maybe<&2, Lint.Def>>,
262 out: List<&2, Lint.Finding>
263) -> List<&2, Lint.Finding>:
264 match nodes:
265 case Nil{}:
266 List.reverse(&2, Lint.Finding, out)
267 case Con{Lint.Node{Lint.Definition{t, u}, +n, s, +k, f}, rest}:
268 defs(
269 rest,
270 loops,
271 program,
272 judged(
273 calls.of(
274 Invariant.is_proof(k),
275 loops,
276 program,
277 Lint.Node{Lint.Definition{t, u}, n, s, k, f}
278 ),
279 [],
280 n,
281 out
282 )
283 )
284 case Con{node, rest}:
285 defs(rest, loops, program, out)