def judged

bend-lint-rules@0.2.0.0 · language/unneeded_plus.bend:124

import bend-lint-rules@0.2.0.0/language/unneeded_plus.bend as UnneededPlus
import Base
import bend-lint-api@0.2.0.0/linter/lint.bend as Lint
import bend-lint-api@0.2.0.0/shared/lists.bend as Lists

124# The findings about a `+` binder (`binder`, if the node declares one) that its facts say its body uses at most once.
125def judged(
126  binder: Maybe<&2, U32>,
127  +parameter: Bool,
128  +owner: Owner,
129  +span: Maybe<&2, Lint.Span>,
130  +name: String,
131  facts: List<&2, Lint.Fact>,
132  out: List<&2, Lint.Finding>
133) -> List<&2, Lint.Finding>:
134  match binder facts:
135    case Some{+b} Con{Lint.Fact{Lint.OfBinder{}, q, used, t}, rest}:
136      judged(
137        Some{b},
138        parameter,
139        owner,
140        span,
141        name,
142        rest,
143        Lists.onto(
144          &2,
145          Lint.Finding,
146          Lint.finding(
147            Lint.Hint{},
148            is_needless(is_once(used), parameter, owner, b),
149            span,
150            message(name)
151          ),
152          out
153        )
154      )
155    case Some{+b} Con{f, rest}:
156      judged(Some{b}, parameter, owner, span, name, rest, out)
157    case _ _:
158      List.reverse(&2, Lint.Finding, out)

Uses (17)

Used by (1)