Commits
Slava Pestov committed 19458cef2c2
IRGen: Preliminary resilient struct support Add a new ResilientStructTypeInfo. This is a singleton since all resilient structs have opaque payloads and are accessed through value witness tables. With this in place, flesh out IRGenModule::isResilient() and use the new singleton to convert resilient structs. Note that the old isResilient() was hard-coded to report that all Clang-imported classes are "resilient". Now that this has been unified with NominalTypeDecl::hasFixedLayout(), we will report Clang-imported classes are "resilient" at the SIL level. This should not introduce any semantic differences at this point. Unlike SIL, where currently resilient types are always resilient even when used from the same module, IRGen is able to perform direct manipulation of resilient structs from the current module, since IRGen's type lowering has a resilience scope plumbed through. Note that we do not yet support laying out structs and classes containing resilient fields -- this will come in a future patch.