Serialization: Round-trip primary associated type list

This commit is contained in:
Slava Pestov
2022-04-16 22:35:57 -04:00
parent d52dddc7c8
commit 6982b90c6e
14 changed files with 193 additions and 71 deletions

View File

@@ -414,8 +414,14 @@ private:
llvm::BitstreamCursor &Cursor);
/// Read a list of associated type declarations in a protocol.
void readAssociatedTypes(SmallVectorImpl<AssociatedTypeDecl *> &assocTypes,
llvm::BitstreamCursor &Cursor);
void readAssociatedTypes(
SmallVectorImpl<AssociatedTypeDecl *> &assocTypes,
llvm::BitstreamCursor &Cursor);
/// Read a list of primary associated type declarations in a protocol.
void readPrimaryAssociatedTypes(
SmallVectorImpl<AssociatedTypeDecl *> &assocTypes,
llvm::BitstreamCursor &Cursor);
/// Populates the protocol's default witness table.
///
@@ -747,8 +753,14 @@ public:
SmallVectorImpl<ProtocolTypeAlias> &typeAliases) override;
void
loadAssociatedTypes(const ProtocolDecl *proto, uint64_t contextData,
SmallVectorImpl<AssociatedTypeDecl *> &assocTypes) override;
loadAssociatedTypes(
const ProtocolDecl *proto, uint64_t contextData,
SmallVectorImpl<AssociatedTypeDecl *> &assocTypes) override;
void
loadPrimaryAssociatedTypes(
const ProtocolDecl *proto, uint64_t contextData,
SmallVectorImpl<AssociatedTypeDecl *> &assocTypes) override;
Optional<StringRef> getGroupNameById(unsigned Id) const;
Optional<StringRef> getSourceFileNameById(unsigned Id) const;