@@ -3402,8 +3402,7 @@ MetadataResponse MetadataPath::followComponent(IRGenFunction &IGF,
34023402 }
34033403
34043404 case Component::Kind::OutOfLineBaseProtocol: {
3405- auto conformance = sourceKey.Kind .getProtocolConformance ();
3406- auto protocol = conformance.getRequirement ();
3405+ auto protocol = sourceKey.Kind .getConformedProtocol ();
34073406 auto &pi = IGF.IGM .getProtocolInfo (protocol,
34083407 ProtocolInfoKind::RequirementSignature);
34093408
@@ -3413,9 +3412,10 @@ MetadataResponse MetadataPath::followComponent(IRGenFunction &IGF,
34133412
34143413 sourceKey.Kind =
34153414 LocalTypeDataKind::forAbstractProtocolWitnessTable (inheritedProtocol);
3416- if (conformance. isConcrete ()) {
3415+ if (sourceKey. Kind . isConcreteProtocolConformance ()) {
34173416 auto inheritedConformance =
3418- conformance.getConcrete ()->getInheritedConformance (inheritedProtocol);
3417+ sourceKey.Kind .getConcreteProtocolConformance ()
3418+ ->getInheritedConformance (inheritedProtocol);
34193419 if (inheritedConformance) {
34203420 sourceKey.Kind = LocalTypeDataKind::forConcreteProtocolWitnessTable (
34213421 inheritedConformance);
@@ -3438,8 +3438,8 @@ MetadataResponse MetadataPath::followComponent(IRGenFunction &IGF,
34383438
34393439 case Component::Kind::AssociatedConformance: {
34403440 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 ();
34433443 auto &pi = IGF.IGM .getProtocolInfo (sourceProtocol,
34443444 ProtocolInfoKind::RequirementSignature);
34453445
@@ -3473,7 +3473,8 @@ MetadataResponse MetadataPath::followComponent(IRGenFunction &IGF,
34733473 // In Embedded Swift associated-conformance entries simply point to the witness table
34743474 // of the associated conformance.
34753475 llvm::Value *sourceWTable = source.getMetadata ();
3476- llvm::Value *associatedWTable = emitAssociatedConformanceValue (IGF, sourceWTable, associatedConformanceRef);
3476+ llvm::Value *associatedWTable = emitAssociatedConformanceValue (
3477+ IGF, sourceWTable, associatedConformanceRef);
34773478 return MetadataResponse::forComplete (associatedWTable);
34783479 }
34793480
@@ -3562,13 +3563,13 @@ MetadataResponse MetadataPath::followComponent(IRGenFunction &IGF,
35623563 }
35633564
35643565 case Component::Kind::ConditionalConformance: {
3565- auto sourceConformance = sourceKey.Kind .getProtocolConformance ();
3566+ auto sourceConformance = sourceKey.Kind .getConcreteProtocolConformance ();
35663567
35673568 auto reqtIndex = component.getPrimaryIndex ();
35683569
35693570 ProtocolDecl *conformingProto;
35703571 auto found = SILWitnessTable::enumerateWitnessTableConditionalConformances (
3571- sourceConformance. getConcrete () ,
3572+ sourceConformance,
35723573 [&](unsigned index, CanType type, ProtocolDecl *proto) {
35733574 if (reqtIndex == index) {
35743575 conformingProto = proto;
0 commit comments