[Serialization] Allow clients to deserialize all generic signatures.

As a debugging aid, allow clients to deserialize all generic signatures
in a given module file.
This commit is contained in:
Doug Gregor
2017-11-07 15:17:20 -08:00
parent 82e1c98e46
commit b1aa23a222
3 changed files with 24 additions and 0 deletions

View File

@@ -2175,6 +2175,17 @@ bool SerializedASTFile::hasEntryPoint() const {
return File.Bits.HasEntryPoint;
}
bool SerializedASTFile::getAllGenericSignatures(
SmallVectorImpl<GenericSignature*> &genericSignatures) {
genericSignatures.clear();
for (unsigned index : indices(File.GenericSignatures)) {
if (auto genericSig = File.getGenericSignature(index + 1))
genericSignatures.push_back(genericSig);
}
return true;
}
ClassDecl *SerializedASTFile::getMainClass() const {
assert(hasEntryPoint());
return cast_or_null<ClassDecl>(File.getDecl(File.Bits.EntryPointDeclID));