def is_live.go

bend-lint-api@0.2.0.0 · linter/lint.bend:400

import bend-lint-api@0.2.0.0/linter/lint.bend as Lint
import Base

400def is_live.go(path: List<&2, Above>, ok: Bool) -> Bool:
401  match path ok:
402    case _ False{}:
403      False{}
404    case Nil{} True{}:
405      False{}
406    case Con{Above{Node{Body{}, n, s, k, f}, at}, rest} True{}:
407      True{}
408    case Con{Above{Node{Annotation{}, n, s, k, f}, at}, rest} True{}:
409      is_live.go(rest, U32.is_eq(at, 0))
410    case Con{Above{Node{Application{}, n, s, k, f}, at}, rest} True{}:
411      is_live.go(rest, Bool.not(is_pair(k)))
412    case Con{Above{Node{Equality{}, n, s, k, f}, at}, rest} True{}:
413      False{}
414    case Con{Above{Node{Forall{b, q}, n, s, k, f}, at}, rest} True{}:
415      False{}
416    case Con{Above{Node{TypeApplication{t}, n, s, k, f}, at}, rest} True{}:
417      False{}
418    case Con{a, rest} True{}:
419      is_live.go(rest, True{})

Uses (8)

Used by (1)