[Pitch] Extensible enums for non-resilient modules

Sure. But to be clear: if an existing library (a) declares a public enum without @frozen; and (b) wishes to "align" the meaning of that declaration as it is written in the non-resilient and resilient dialects by means of this pitched feature—I can see no migration path which does not force a new semver major. Aligning and not forcing a new semver major are mutually incompatible goals for such a declaration, we agree?

I don't consider freezing all public enums or outright not adopting the feature flag/future language mode as a form of "aligning"—they're just ways of working around or dodging the issue. Just like, trivially, any non-resilient library that doesn't declare any public enums is already fully "aligned," but not in any meaningful way.

2 Likes