Commits

Slava Pestov committed ca7254c53d5
IRGen: Preliminary support for resilient enums Resilient enums are manipulated as opaque values. Clients are still allowed to assume physical case indices and case payload types for now -- we might add a level of indirection here, which would require designing a new case dispatch mechanism. Resilient enums are never constructed directly, only by calling case constructor functions. Case constructors already get emitted, however they're [transparent] -- this will change in a subsequent patch. We could save on code size by emitting an InjectEnumTag value witness function that can construct any case given a physical case number, rather than emitting constructors for each case, but for now going through case constructor functions will suffice.