Skip to content

Commit 8ec5a15

Browse files
committed
[NFC]/[GSB] Move addConditionalRequirements to be a method.
1 parent 172972d commit 8ec5a15

File tree

2 files changed

+10
-9
lines changed

2 files changed

+10
-9
lines changed

include/swift/AST/GenericSignatureBuilder.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -337,6 +337,10 @@ class GenericSignatureBuilder {
337337
EquivalenceClass *unresolvedEquivClass,
338338
UnresolvedHandlingKind unresolvedHandling);
339339

340+
/// Add any conditional requirements from the given conformance.
341+
void addConditionalRequirements(ProtocolConformanceRef conformance,
342+
ModuleDecl *inferForModule);
343+
340344
/// Resolve the conformance of the given type to the given protocol when the
341345
/// potential archetype is known to be equivalent to a concrete type.
342346
///

lib/AST/GenericSignatureBuilder.cpp

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2593,17 +2593,14 @@ ConstraintResult GenericSignatureBuilder::handleUnresolvedRequirement(
25932593
}
25942594
}
25952595

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) {
26012598
// Abstract conformances don't have associated decl-contexts/modules, but also
26022599
// don't have conditional requirements.
26032600
if (conformance.isConcrete()) {
26042601
auto source = FloatingRequirementSource::forInferred(nullptr);
26052602
for (auto requirement : conformance.getConditionalRequirements()) {
2606-
builder.addRequirement(requirement, source, inferForModule);
2603+
addRequirement(requirement, source, inferForModule);
26072604
++NumConditionalRequirementsAdded;
26082605
}
26092606
}
@@ -2647,7 +2644,7 @@ GenericSignatureBuilder::resolveConcreteConformance(ResolvedType type,
26472644

26482645
concreteSource = concreteSource->viaConcrete(*this, *conformance);
26492646
equivClass->recordConformanceConstraint(*this, type, proto, concreteSource);
2650-
addConditionalRequirements(*this, *conformance, /*inferForModule=*/nullptr);
2647+
addConditionalRequirements(*conformance, /*inferForModule=*/nullptr);
26512648
return concreteSource;
26522649
}
26532650
const RequirementSource *GenericSignatureBuilder::resolveSuperConformance(
@@ -2678,7 +2675,7 @@ const RequirementSource *GenericSignatureBuilder::resolveSuperConformance(
26782675
superclassSource =
26792676
superclassSource->viaSuperclass(*this, *conformance);
26802677
equivClass->recordConformanceConstraint(*this, type, proto, superclassSource);
2681-
addConditionalRequirements(*this, *conformance, /*inferForModule=*/nullptr);
2678+
addConditionalRequirements(*conformance, /*inferForModule=*/nullptr);
26822679
return superclassSource;
26832680
}
26842681

@@ -4719,7 +4716,7 @@ ConstraintResult GenericSignatureBuilder::addTypeRequirement(
47194716

47204717
// FIXME: diagnose if there's no conformance.
47214718
if (conformance) {
4722-
addConditionalRequirements(*this, *conformance, inferForModule);
4719+
addConditionalRequirements(*conformance, inferForModule);
47234720
}
47244721
}
47254722
}

0 commit comments

Comments
 (0)