def plan.typed

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

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

397# does the chain start with a name and a `:`? An upper-case name counts when
398# upper says so
399def plan.typed(rest: Tree.Node, upper: Bool) -> Bool:
400  match rest:
401    case Tree.NCons{Tree.Leaf{Lex.Tok{Lex.TName{}, _t, _l, _c}},
402      Tree.NCons{Tree.Leaf{Lex.Tok{Lex.TColon{}, _ct, _cl, _cc}}, _r}}:
403      True{}
404    case Tree.NCons{Tree.Leaf{Lex.Tok{Lex.TUpper{}, _t, _l, _c}},
405      Tree.NCons{Tree.Leaf{Lex.Tok{Lex.TColon{}, _ct, _cl, _cc}}, _r}}:
406      upper
407    case _other:
408      False{}

Uses (4)

Used by (2)