SE-0266 — Synthesized Comparable conformance for enum types

You're right—I should have also added reordering cases already has situations today which would result in behavioral changes would change that are similar to what would happen with Comparable synthesis, but for structs, this would be introducing an entirely new source order sensitivity that does not manifest in public API or behavior:

  • Reordering the cases of an enum with synthesized CaseIterable changes its iteration order
  • Reordering the cases of an integer raw value enum where values are inferred changes the raw value

Taken together with the source/API compatibility constraints, I think that's a reasonable guide to omit struct synthesis, at least for now.

1 Like