@@ -3402,8 +3402,7 @@ MetadataResponse MetadataPath::followComponent(IRGenFunction &IGF,
3402
3402
}
3403
3403
3404
3404
case Component::Kind::OutOfLineBaseProtocol: {
3405
- auto conformance = sourceKey.Kind .getProtocolConformance ();
3406
- auto protocol = conformance.getRequirement ();
3405
+ auto protocol = sourceKey.Kind .getConformedProtocol ();
3407
3406
auto &pi = IGF.IGM .getProtocolInfo (protocol,
3408
3407
ProtocolInfoKind::RequirementSignature);
3409
3408
@@ -3413,9 +3412,10 @@ MetadataResponse MetadataPath::followComponent(IRGenFunction &IGF,
3413
3412
3414
3413
sourceKey.Kind =
3415
3414
LocalTypeDataKind::forAbstractProtocolWitnessTable (inheritedProtocol);
3416
- if (conformance. isConcrete ()) {
3415
+ if (sourceKey. Kind . isConcreteProtocolConformance ()) {
3417
3416
auto inheritedConformance =
3418
- conformance.getConcrete ()->getInheritedConformance (inheritedProtocol);
3417
+ sourceKey.Kind .getConcreteProtocolConformance ()
3418
+ ->getInheritedConformance (inheritedProtocol);
3419
3419
if (inheritedConformance) {
3420
3420
sourceKey.Kind = LocalTypeDataKind::forConcreteProtocolWitnessTable (
3421
3421
inheritedConformance);
@@ -3438,8 +3438,8 @@ MetadataResponse MetadataPath::followComponent(IRGenFunction &IGF,
3438
3438
3439
3439
case Component::Kind::AssociatedConformance: {
3440
3440
auto sourceType = sourceKey.Type ;
3441
- auto sourceConformance = sourceKey.Kind .getProtocolConformance ();
3442
- auto sourceProtocol = sourceConformance. getRequirement ();
3441
+ auto sourceConformance = sourceKey.Kind .getProtocolConformance (sourceType );
3442
+ auto sourceProtocol = sourceKey. Kind . getConformedProtocol ();
3443
3443
auto &pi = IGF.IGM .getProtocolInfo (sourceProtocol,
3444
3444
ProtocolInfoKind::RequirementSignature);
3445
3445
@@ -3473,7 +3473,8 @@ MetadataResponse MetadataPath::followComponent(IRGenFunction &IGF,
3473
3473
// In Embedded Swift associated-conformance entries simply point to the witness table
3474
3474
// of the associated conformance.
3475
3475
llvm::Value *sourceWTable = source.getMetadata ();
3476
- llvm::Value *associatedWTable = emitAssociatedConformanceValue (IGF, sourceWTable, associatedConformanceRef);
3476
+ llvm::Value *associatedWTable = emitAssociatedConformanceValue (
3477
+ IGF, sourceWTable, associatedConformanceRef);
3477
3478
return MetadataResponse::forComplete (associatedWTable);
3478
3479
}
3479
3480
@@ -3562,13 +3563,13 @@ MetadataResponse MetadataPath::followComponent(IRGenFunction &IGF,
3562
3563
}
3563
3564
3564
3565
case Component::Kind::ConditionalConformance: {
3565
- auto sourceConformance = sourceKey.Kind .getProtocolConformance ();
3566
+ auto sourceConformance = sourceKey.Kind .getConcreteProtocolConformance ();
3566
3567
3567
3568
auto reqtIndex = component.getPrimaryIndex ();
3568
3569
3569
3570
ProtocolDecl *conformingProto;
3570
3571
auto found = SILWitnessTable::enumerateWitnessTableConditionalConformances (
3571
- sourceConformance. getConcrete () ,
3572
+ sourceConformance,
3572
3573
[&](unsigned index , CanType type, ProtocolDecl *proto) {
3573
3574
if (reqtIndex == index ) {
3574
3575
conformingProto = proto;
0 commit comments