def uses

bolt@1.27.0.0 · src/rules/suspicious/concat.bend:261

import bolt@1.27.0.0/src/rules/suspicious/concat.bend as Concat
import Base
import bolt@1.27.0.0/src/syntax/lex.bend as Lex
import bolt@1.27.0.0/src/syntax/tree.bend as Tree

261# how many times a plain name is read under the node
262def uses(nn: Tree.Node, +name: String) -> Nat:
263  match nn:
264    case Tree.NCons{h, rest}:
265      Nat.add(uses(h, name), uses(rest, name))
266    case Tree.Group{open, kids, close}:
267      uses(kids, name)
268    case Tree.Stmt{kind, kids, body}:
269      Nat.add(uses(kids, name), uses(body, name))
270    case Tree.Leaf{Lex.Tok{Lex.TName{}, +t, l, c}}:
271      Bool.pick(Nat, String.eq(t, name), 1n, 0n)
272    case other:
273      0n

Uses (8)

Used by (1)