def plan.use

bolt@1.27.0.0 · src/syntax/bind.bend:533

import bolt@1.27.0.0/src/syntax/bind.bend as Bind
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

533# does a leaf of kind k use a name?
534def plan.use(mode: Mode, kk: Lex.TokKind, +rest: Tree.Node) -> Bool:
535  match mode kk:
536    case MTeleType{_kind} Lex.TName{}:
537      True{}
538    case MTeleType{_kind} Lex.TUpper{}:
539      True{}
540    case MTeleType{_kind} Lex.TDotted{}:
541      True{}
542    case MLhs{_outer, _kind} Lex.TUpper{}:
543      plan.group(rest)
544    case MLhs{_outer, _kind} Lex.TDotted{}:
545      plan.group(rest)
546    case MLhsType{_outer} Lex.TName{}:
547      True{}
548    case MLhsType{_outer} Lex.TUpper{}:
549      True{}
550    case MLhsType{_outer} Lex.TDotted{}:
551      True{}
552    case MTerm{} Lex.TName{}:
553      Bool.not(plan.lam(rest))
554    case MTerm{} Lex.TUpper{}:
555      True{}
556    case MTerm{} Lex.TDotted{}:
557      True{}
558    case _other _k:
559      False{}

Uses (7)

Used by (1)