@@ -5004,14 +5004,14 @@ class Serializer::TypeSerializer : public TypeVisitor<TypeSerializer> {
50045004 void visitPackType (const PackType *packTy) {
50055005 using namespace decls_block ;
50065006 unsigned abbrCode = S.DeclTypeAbbrCodes [PackTypeLayout::Code];
5007- PackTypeLayout::emitRecord (S.Out , S.ScratchRecord , abbrCode);
50085007
5009- abbrCode = S.DeclTypeAbbrCodes [PackTypeEltLayout::Code];
5010- for (auto elt : packTy->getElementTypes ()) {
5011- PackTypeEltLayout::emitRecord (
5012- S.Out , S.ScratchRecord , abbrCode,
5013- S.addTypeRef (elt));
5008+ SmallVector<TypeID, 8 > variableData;
5009+ for (auto elementType : packTy->getElementTypes ()) {
5010+ variableData.push_back (S.addTypeRef (elementType));
50145011 }
5012+
5013+ PackTypeLayout::emitRecord (S.Out , S.ScratchRecord , abbrCode,
5014+ variableData);
50155015 }
50165016
50175017 void visitSILPackType (const SILPackType *packTy) {
@@ -5549,6 +5549,7 @@ void Serializer::writeAllDeclsAndTypes() {
55495549 registerDeclTypeAbbr<ExistentialMetatypeTypeLayout>();
55505550 registerDeclTypeAbbr<PrimaryArchetypeTypeLayout>();
55515551 registerDeclTypeAbbr<OpenedArchetypeTypeLayout>();
5552+ registerDeclTypeAbbr<ElementArchetypeTypeLayout>();
55525553 registerDeclTypeAbbr<OpaqueArchetypeTypeLayout>();
55535554 registerDeclTypeAbbr<PackArchetypeTypeLayout>();
55545555 registerDeclTypeAbbr<ProtocolCompositionTypeLayout>();
@@ -5568,7 +5569,7 @@ void Serializer::writeAllDeclsAndTypes() {
55685569 registerDeclTypeAbbr<DynamicSelfTypeLayout>();
55695570 registerDeclTypeAbbr<PackExpansionTypeLayout>();
55705571 registerDeclTypeAbbr<PackTypeLayout>();
5571- registerDeclTypeAbbr<PackTypeEltLayout >();
5572+ registerDeclTypeAbbr<SILPackTypeLayout >();
55725573
55735574 registerDeclTypeAbbr<ErrorFlagLayout>();
55745575 registerDeclTypeAbbr<ErrorTypeLayout>();
0 commit comments