@@ -5410,21 +5410,21 @@ namespace {
54105410 }
54115411 };
54125412
5413- template < class Impl >
5413+ class ForeignClassMetadataBuilder ;
54145414 class ForeignClassMetadataBuilderBase :
5415- public ForeignClassMetadataVisitor<Impl > {
5415+ public ForeignClassMetadataVisitor<ForeignClassMetadataBuilder > {
54165416 protected:
54175417 ConstantStructBuilder &B;
54185418
54195419 ForeignClassMetadataBuilderBase (IRGenModule &IGM, ClassDecl *target,
54205420 ConstantStructBuilder &B)
5421- : ForeignClassMetadataVisitor<Impl> (IGM, target), B(B) {}
5421+ : ForeignClassMetadataVisitor(IGM, target), B(B) {}
54225422 };
54235423
54245424 // / A builder for ForeignClassMetadata.
54255425 class ForeignClassMetadataBuilder :
54265426 public ForeignMetadataBuilderBase<ForeignClassMetadataBuilder,
5427- ForeignClassMetadataBuilderBase<ForeignClassMetadataBuilder> > {
5427+ ForeignClassMetadataBuilderBase> {
54285428 public:
54295429 ForeignClassMetadataBuilder (IRGenModule &IGM, ClassDecl *target,
54305430 ConstantStructBuilder &B)
@@ -5521,10 +5521,21 @@ namespace {
55215521 }
55225522 };
55235523
5524+ class ForeignReferenceTypeMetadataBuilder ;
5525+ class ForeignReferenceTypeMetadataBuilderBase :
5526+ public ForeignReferenceTypeMetadataVisitor<ForeignReferenceTypeMetadataBuilder> {
5527+ protected:
5528+ ConstantStructBuilder &B;
5529+
5530+ ForeignReferenceTypeMetadataBuilderBase (IRGenModule &IGM, ClassDecl *target,
5531+ ConstantStructBuilder &B)
5532+ : ForeignReferenceTypeMetadataVisitor(IGM, target), B(B) {}
5533+ };
5534+
55245535 // / A builder for ForeignReferenceTypeMetadata.
55255536 class ForeignReferenceTypeMetadataBuilder :
55265537 public ForeignMetadataBuilderBase<ForeignReferenceTypeMetadataBuilder,
5527- ForeignClassMetadataBuilderBase<ForeignReferenceTypeMetadataBuilder> > {
5538+ ForeignReferenceTypeMetadataBuilderBase > {
55285539 public:
55295540 ForeignReferenceTypeMetadataBuilder (IRGenModule &IGM, ClassDecl *target,
55305541 ConstantStructBuilder &B)
@@ -5560,11 +5571,6 @@ namespace {
55605571 PointerAuthEntity::Special::TypeDescriptor);
55615572 }
55625573
5563- void addSuperclass () {
5564- assert (!Target->hasSuperclass () &&
5565- " foreign reference types should not have superclasses." );
5566- }
5567-
55685574 void addReservedWord () {
55695575 B.addNullPointer (IGM.Int8PtrTy );
55705576 }
0 commit comments