@@ -2593,17 +2593,14 @@ ConstraintResult GenericSignatureBuilder::handleUnresolvedRequirement(
2593
2593
}
2594
2594
}
2595
2595
2596
- // Function for feeding through any other requirements that the conformance
2597
- // requires to be satisfied. These are things we're inferring.
2598
- static void addConditionalRequirements (GenericSignatureBuilder &builder,
2599
- ProtocolConformanceRef conformance,
2600
- ModuleDecl *inferForModule) {
2596
+ void GenericSignatureBuilder::addConditionalRequirements (
2597
+ ProtocolConformanceRef conformance, ModuleDecl *inferForModule) {
2601
2598
// Abstract conformances don't have associated decl-contexts/modules, but also
2602
2599
// don't have conditional requirements.
2603
2600
if (conformance.isConcrete ()) {
2604
2601
auto source = FloatingRequirementSource::forInferred (nullptr );
2605
2602
for (auto requirement : conformance.getConditionalRequirements ()) {
2606
- builder. addRequirement (requirement, source, inferForModule);
2603
+ addRequirement (requirement, source, inferForModule);
2607
2604
++NumConditionalRequirementsAdded;
2608
2605
}
2609
2606
}
@@ -2647,7 +2644,7 @@ GenericSignatureBuilder::resolveConcreteConformance(ResolvedType type,
2647
2644
2648
2645
concreteSource = concreteSource->viaConcrete (*this , *conformance);
2649
2646
equivClass->recordConformanceConstraint (*this , type, proto, concreteSource);
2650
- addConditionalRequirements (*this , * conformance, /* inferForModule=*/ nullptr );
2647
+ addConditionalRequirements (*conformance, /* inferForModule=*/ nullptr );
2651
2648
return concreteSource;
2652
2649
}
2653
2650
const RequirementSource *GenericSignatureBuilder::resolveSuperConformance (
@@ -2678,7 +2675,7 @@ const RequirementSource *GenericSignatureBuilder::resolveSuperConformance(
2678
2675
superclassSource =
2679
2676
superclassSource->viaSuperclass (*this , *conformance);
2680
2677
equivClass->recordConformanceConstraint (*this , type, proto, superclassSource);
2681
- addConditionalRequirements (*this , * conformance, /* inferForModule=*/ nullptr );
2678
+ addConditionalRequirements (*conformance, /* inferForModule=*/ nullptr );
2682
2679
return superclassSource;
2683
2680
}
2684
2681
@@ -4719,7 +4716,7 @@ ConstraintResult GenericSignatureBuilder::addTypeRequirement(
4719
4716
4720
4717
// FIXME: diagnose if there's no conformance.
4721
4718
if (conformance) {
4722
- addConditionalRequirements (*this , * conformance, inferForModule);
4719
+ addConditionalRequirements (*conformance, inferForModule);
4723
4720
}
4724
4721
}
4725
4722
}
0 commit comments