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
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