def Runs.close

bend-lint-rules@0.2.0.0 · layout/directive_order.bend:67

import bend-lint-rules@0.2.0.0/layout/directive_order.bend as DirectiveOrder
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

67def Runs.close(
68  open: Maybe<&2, Run>,
69  +path: String,
70  out: List<&2, Lint.Finding>
71) -> List<&2, Lint.Finding>:
72  match open:
73    case Some{Run{beg, end, line, key, False{}, slots}}:
74      +ordered = List.reverse(&2, Slot, slots)
75      Lint.Finding{
76        Lint.Warning{},
77        Lint.Span{path, beg, end},
78        "Directives that stack must be in order: by rule, then severity, then keyword.",
79        [
80          Lint.Fix{
81            "Order the directives",
82            Slot.order(ordered, Lists.sort(~Slot, ~Slot.is_le, ordered), path, [])
83          }
84        ]
85      }
86        <> out
87    case _:
88      out

Uses (14)

Used by (2)