Re-apply the series of commits to remove redundantly-serialized conformances.

I can't actually reproduce the buildbot failure that happened last night, so
hopefully it will (a) happen again, so I can investigate, or (b) not happen
again.

Swift SVN r22230
This commit is contained in:
Jordan Rose
2014-09-23 20:50:51 +00:00
parent a7c65273d5
commit 06986b7dca
8 changed files with 240 additions and 136 deletions

View File

@@ -340,14 +340,6 @@ private:
/// If the record at the cursor is not a pattern, returns null.
Pattern *maybeReadPattern();
/// Read a referenced conformance, such as the underlying conformance for a
/// specialized or inherited protocol conformance.
ProtocolConformance *
readReferencedConformance(ProtocolDecl *proto,
serialization::DeclID typeID,
serialization::ModuleID moduleID,
llvm::BitstreamCursor &Cursor);
GenericParamList *maybeGetOrReadGenericParams(serialization::DeclID contextID,
DeclContext *DC,
llvm::BitstreamCursor &Cursor);
@@ -386,9 +378,6 @@ private:
serialization::DeclID didSet);
public:
/// Returns the decl context with the given ID, deserializing it if needed.
DeclContext *getDeclContext(serialization::DeclID DID);
/// Loads a module from the given memory buffer.
///
/// \param moduleInputBuffer A memory buffer containing the serialized module
@@ -511,6 +500,9 @@ public:
Decl *getDecl(serialization::DeclID DID,
Optional<DeclContext *> ForcedContext = {});
/// Returns the decl context with the given ID, deserializing it if needed.
DeclContext *getDeclContext(serialization::DeclID DID);
/// Returns the appropriate module for the given ID.
Module *getModule(serialization::ModuleID MID);
@@ -535,6 +527,14 @@ public:
Optional<ProtocolConformance *>
maybeReadConformance(Type conformingType, llvm::BitstreamCursor &Cursor);
/// Read a referenced conformance, such as the underlying conformance for a
/// specialized or inherited protocol conformance.
ProtocolConformance *
readReferencedConformance(ProtocolDecl *proto,
serialization::DeclID typeID,
serialization::ModuleID moduleID,
llvm::BitstreamCursor &Cursor);
/// Reads a generic param list from \c DeclTypeCursor.
///
/// If the record at the cursor is not a generic param list, returns null