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