@@ -1780,9 +1780,6 @@ class AccessorConformanceInfo : public ConformanceInfo {
17801780 auto associatedWitness = entry.getAssociatedConformanceWitness ();
17811781 assert (associatedWitness.Requirement == requirement.getAssociation ()
17821782 && " sil witness table does not match protocol" );
1783- assert (associatedWitness.Protocol ==
1784- requirement.getAssociatedRequirement ()
1785- && " sil witness table does not match protocol" );
17861783 auto piIndex = PI.getAssociatedConformanceIndex (requirement);
17871784 assert ((size_t )piIndex.getValue () ==
17881785 Table.size () - WitnessTableFirstRequirementOffset &&
@@ -1792,10 +1789,8 @@ class AccessorConformanceInfo : public ConformanceInfo {
17921789 if (IGM.Context .LangOpts .hasFeature (Feature::Embedded)) {
17931790 // In Embedded Swift associated-conformance entries simply point to the witness table
17941791 // of the associated conformance.
1795- ProtocolConformanceRef assocConf =
1796- SILWT->getConformance ()->getAssociatedConformance (requirement.getAssociation (),
1797- requirement.getAssociatedRequirement ());
1798- llvm::Constant *witnessEntry = IGM.getAddrOfWitnessTable (assocConf.getConcrete ());
1792+ ProtocolConformance *assocConf = associatedWitness.Witness .getConcrete ();
1793+ llvm::Constant *witnessEntry = IGM.getAddrOfWitnessTable (assocConf);
17991794 auto &schema = IGM.getOptions ().PointerAuth
18001795 .ProtocolAssociatedTypeWitnessTableAccessFunctions ;
18011796 Table.addSignedPointer (witnessEntry, schema, requirement);
@@ -2030,10 +2025,11 @@ void ResilientWitnessTableBuilder::collectResilientWitnesses(
20302025
20312026 ProtocolConformanceRef associatedConformance =
20322027 ConformanceInContext.getAssociatedConformance (witness.Requirement ,
2033- witness.Protocol );
2028+ witness.Witness .getRequirement ());
2029+
20342030 AssociatedConformance requirement (SILWT->getProtocol (),
20352031 witness.Requirement ,
2036- witness.Protocol );
2032+ witness.Witness . getRequirement () );
20372033
20382034 llvm::Constant *witnessEntry =
20392035 getAssociatedConformanceWitness (requirement, associate,
@@ -2353,7 +2349,7 @@ namespace {
23532349
23542350 AssociatedConformance requirement (SILWT->getProtocol (),
23552351 witness.Requirement ,
2356- witness.Protocol );
2352+ witness.Witness . getRequirement () );
23572353 auto assocConformanceDescriptor =
23582354 IGM.getAddrOfLLVMVariableOrGOTEquivalent (
23592355 LinkEntity::forAssociatedConformanceDescriptor (requirement));
0 commit comments