(De-)serialized ProtocolConformance::DefaultedDefinitions.

Swift SVN r6166
This commit is contained in:
Doug Gregor
2013-07-11 18:34:03 +00:00
parent b9aca28a27
commit bb2046c37b
3 changed files with 16 additions and 2 deletions

View File

@@ -181,11 +181,12 @@ ProtocolConformance *ModuleFile::maybeReadConformance() {
return nullptr;
lastRecordOffset.reset();
unsigned valueCount, typeCount, inheritedCount;
unsigned valueCount, typeCount, inheritedCount, defaultedCount;
ArrayRef<uint64_t> rawIDs;
ProtocolConformanceLayout::readRecord(scratch, valueCount, typeCount,
inheritedCount, rawIDs);
inheritedCount, defaultedCount,
rawIDs);
ProtocolConformance *conformance =
ModuleContext->Ctx.Allocate<ProtocolConformance>(1);
@@ -219,6 +220,12 @@ ProtocolConformance *ModuleFile::maybeReadConformance() {
conformance->InheritedMapping.insert(std::make_pair(proto, inherited));
}
while (defaultedCount--) {
BCOffsetRAII restoreOffset(DeclTypeCursor);
auto decl = cast<ValueDecl>(getDecl(*rawIDIter++));
conformance->DefaultedDefinitions.insert(decl);
}
return conformance;
}