Serialization: Simplify GenericEnvironment (de-)serialization

Now that GenericSignatures store their single unique GenericEnvironment,
we can remove similar logic from deserialization to preserve identity
of GenericEnvironments.
This commit is contained in:
Slava Pestov
2019-09-05 01:07:24 -04:00
parent 600a6f37d8
commit 2656220222
7 changed files with 70 additions and 162 deletions

View File

@@ -922,7 +922,7 @@ bool ModuleFile::readIndexBlock(llvm::BitstreamCursor &cursor) {
break;
case index_block::GENERIC_SIGNATURE_OFFSETS:
assert(blobData.empty());
allocateBuffer(GenericSignaturesAndEnvironments, scratch);
allocateBuffer(GenericSignatures, scratch);
break;
case index_block::SUBSTITUTION_MAP_OFFSETS:
assert(blobData.empty());
@@ -2344,7 +2344,7 @@ bool SerializedASTFile::hasEntryPoint() const {
bool SerializedASTFile::getAllGenericSignatures(
SmallVectorImpl<GenericSignature*> &genericSignatures) {
genericSignatures.clear();
for (unsigned index : indices(File.GenericSignaturesAndEnvironments)) {
for (unsigned index : indices(File.GenericSignatures)) {
if (auto genericSig = File.getGenericSignature(index + 1))
genericSignatures.push_back(genericSig);
}