@@ -5410,21 +5410,21 @@ namespace {
5410
5410
}
5411
5411
};
5412
5412
5413
- template < class Impl >
5413
+ class ForeignClassMetadataBuilder ;
5414
5414
class ForeignClassMetadataBuilderBase :
5415
- public ForeignClassMetadataVisitor<Impl > {
5415
+ public ForeignClassMetadataVisitor<ForeignClassMetadataBuilder > {
5416
5416
protected:
5417
5417
ConstantStructBuilder &B;
5418
5418
5419
5419
ForeignClassMetadataBuilderBase (IRGenModule &IGM, ClassDecl *target,
5420
5420
ConstantStructBuilder &B)
5421
- : ForeignClassMetadataVisitor<Impl> (IGM, target), B(B) {}
5421
+ : ForeignClassMetadataVisitor(IGM, target), B(B) {}
5422
5422
};
5423
5423
5424
5424
// / A builder for ForeignClassMetadata.
5425
5425
class ForeignClassMetadataBuilder :
5426
5426
public ForeignMetadataBuilderBase<ForeignClassMetadataBuilder,
5427
- ForeignClassMetadataBuilderBase<ForeignClassMetadataBuilder> > {
5427
+ ForeignClassMetadataBuilderBase> {
5428
5428
public:
5429
5429
ForeignClassMetadataBuilder (IRGenModule &IGM, ClassDecl *target,
5430
5430
ConstantStructBuilder &B)
@@ -5521,10 +5521,21 @@ namespace {
5521
5521
}
5522
5522
};
5523
5523
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
+
5524
5535
// / A builder for ForeignReferenceTypeMetadata.
5525
5536
class ForeignReferenceTypeMetadataBuilder :
5526
5537
public ForeignMetadataBuilderBase<ForeignReferenceTypeMetadataBuilder,
5527
- ForeignClassMetadataBuilderBase<ForeignReferenceTypeMetadataBuilder> > {
5538
+ ForeignReferenceTypeMetadataBuilderBase > {
5528
5539
public:
5529
5540
ForeignReferenceTypeMetadataBuilder (IRGenModule &IGM, ClassDecl *target,
5530
5541
ConstantStructBuilder &B)
@@ -5560,11 +5571,6 @@ namespace {
5560
5571
PointerAuthEntity::Special::TypeDescriptor);
5561
5572
}
5562
5573
5563
- void addSuperclass () {
5564
- assert (!Target->hasSuperclass () &&
5565
- " foreign reference types should not have superclasses." );
5566
- }
5567
-
5568
5574
void addReservedWord () {
5569
5575
B.addNullPointer (IGM.Int8PtrTy );
5570
5576
}
0 commit comments