[serialization] Serialize conformances for typealiases and protocols too.

Swift SVN r5988
This commit is contained in:
Jordan Rose
2013-07-04 00:20:34 +00:00
parent 0054e58935
commit 820c5a1404
3 changed files with 20 additions and 9 deletions

View File

@@ -542,6 +542,12 @@ Decl *ModuleFile::getDecl(DeclID DID, Optional<DeclContext *> ForcedContext) {
alias->setImplicit();
if (isGeneric)
alias->setGenericParameter();
SmallVector<ProtocolConformance *, 16> conformanceBuf;
while (ProtocolConformance *conformance = maybeReadConformance())
conformanceBuf.push_back(conformance);
alias->setConformances(ctx.AllocateCopy(conformanceBuf));
break;
}
@@ -791,6 +797,11 @@ Decl *ModuleFile::getDecl(DeclID DID, Optional<DeclContext *> ForcedContext) {
if (isImplicit)
proto->setImplicit();
SmallVector<ProtocolConformance *, 16> conformanceBuf;
while (ProtocolConformance *conformance = maybeReadConformance())
conformanceBuf.push_back(conformance);
proto->setConformances(ctx.AllocateCopy(conformanceBuf));
auto members = readMembers();
assert(members.hasValue() && "could not read struct members");
proto->setMembers(members.getValue(), SourceRange());