Commits

Slava Pestov committed 0a072484ec2
SILGen: Emit enum case constructors lazily Now that we open-code enum construction, enum constructor entry points are only needed when they are partially-applied, which is a rare case. So we treat them like curry thunks and only emit them as needed. The main consequence of this is that enum case constructors are no longer part of our ABI. To avoid a regression in the code path for diagnosing infinite value types, force type lowering to walk a type when emitting its declaration, even if there are no other references to the type in the program (which is now the case for public enums which are otherwise not used). Also XFAIL a DebugInfo test since it is not clear to me what the test does or how to fix it. The obvious change of adding references to the enum case constructor function to force it to be emitted did not work.