pattern-fields-ordering

Group
Style
Path
lint/style/pattern-fields-ordering
Default
Off, opt in
Origin
Falcon
Rule
310 of 512

Flags named object and record pattern fields that violate the configured order.

Set order to "ascending" or "descending" for case-sensitive lexicographic ordering. Without a valid explicit order, this rule is inactive. Explicit labels and inferred shorthand names are compared; positional record fields and unresolved shorthand names break the comparison sequence.

Invalid

example.dartdart
void objects(Object value) {
  if (value case Point(zebra: var z, apple: var a)) {}
  if (value case Point(:var zebra, :var apple)) {}
  if (value case (zebra: var z, apple: var a)) {}
  if (value case (:var zebra, :var apple)) {}
  if (value case (0, zebra: var z, apple: var a)) {}
}
class Point { final int apple = 1; final int zebra = 2; }
Reorder named entries to follow the configured order.
1void objects(Object value) {
2 if (value case Point(zebra: var z, apple: var a)) {}
Reorder named entries to follow the configured order.
2 if (value case Point(zebra: var z, apple: var a)) {}
3 if (value case Point(:var zebra, :var apple)) {}
Reorder named entries to follow the configured order.
3 if (value case Point(:var zebra, :var apple)) {}
4 if (value case (zebra: var z, apple: var a)) {}
Reorder named entries to follow the configured order.
4 if (value case (zebra: var z, apple: var a)) {}
5 if (value case (:var zebra, :var apple)) {}
Reorder named entries to follow the configured order.
5 if (value case (:var zebra, :var apple)) {}
6 if (value case (0, zebra: var z, apple: var a)) {}

Valid

example.dartdart
void objects(Object value) {
  if (value case Point(apple: var a, zebra: var z)) {}
  if (value case Point(:var apple, :var zebra)) {}
  if (value case (apple: var a, zebra: var z)) {}
  if (value case (:var apple, :var zebra)) {}
  if (value case (var zebra, var apple)) {}
  if (value case (0, apple: var a, zebra: var z)) {}
  if (value case Point(apple: var zebra, zebra: var apple)) {}
}
class Point { final int apple = 1; final int zebra = 2; }

Configure pattern-fields-ordering

Set its severity in falcon.json. See the configuration guide.

falcon.jsonjson
{
  "linter": {
    "rules": {
      "style": {
        "pattern-fields-ordering": "error"
      }
    }
  }
}

Or silence one occurrence with a suppression comment; the reason is required.

example.dartdart
// falcon-ignore lint/style/pattern-fields-ordering: <reason>