@@ -5138,21 +5138,21 @@ void ConformanceChecker::ensureRequirementsAreSatisfied() {
51385138
51395139 const auto result = TypeChecker::checkGenericArgumentsForDiagnostics (
51405140 module , reqSig, QuerySubstitutionMap{substitutions});
5141- switch (result) {
5142- case CheckGenericArgumentsResult ::Success:
5141+ switch (result. getKind () ) {
5142+ case CheckRequirementsResult ::Success:
51435143 // Go on to check exportability.
51445144 break ;
51455145
5146- case CheckGenericArgumentsResult ::RequirementFailure:
5147- case CheckGenericArgumentsResult ::SubstitutionFailure:
5146+ case CheckRequirementsResult ::RequirementFailure:
5147+ case CheckRequirementsResult ::SubstitutionFailure:
51485148 // Diagnose the failure generically.
51495149 // FIXME: Would be nice to give some more context here!
51505150 if (!Conformance->isInvalid ()) {
51515151 diags.diagnose (Loc, diag::type_does_not_conform,
51525152 Adoptee,
51535153 Proto->getDeclaredInterfaceType ());
51545154
5155- if (result == CheckGenericArgumentsResult ::RequirementFailure) {
5155+ if (result. getKind () == CheckRequirementsResult ::RequirementFailure) {
51565156 TypeChecker::diagnoseRequirementFailure (
51575157 result.getRequirementFailureInfo (), Loc, Loc,
51585158 proto->getDeclaredInterfaceType (),
@@ -5795,27 +5795,21 @@ ProtocolConformanceRef
57955795TypeChecker::conformsToProtocol (Type T, ProtocolDecl *Proto, ModuleDecl *M,
57965796 bool allowMissing) {
57975797 // Look up conformance in the module.
5798- auto lookupResult = M->lookupConformance (
5799- T, Proto, allowMissing);
5800-
5798+ auto lookupResult = M->lookupConformance (T, Proto, allowMissing);
58015799 if (lookupResult.isInvalid ()) {
58025800 return ProtocolConformanceRef::forInvalid ();
58035801 }
58045802
5805- auto condReqs = lookupResult.getConditionalRequirementsIfAvailable ();
5806- assert (condReqs &&
5807- " unhandled recursion: missing conditional requirements when they're "
5808- " required" );
5803+ auto condReqs = lookupResult.getConditionalRequirements ();
58095804
58105805 // If we have a conditional requirements that we need to check, do so now.
5811- if (!condReqs->empty ()) {
5812- auto conditionalCheckResult = checkGenericArguments (*condReqs);
5813- switch (conditionalCheckResult) {
5814- case CheckGenericArgumentsResult::Success:
5806+ if (!condReqs.empty ()) {
5807+ switch (checkRequirements (condReqs)) {
5808+ case CheckRequirementsResult::Success:
58155809 break ;
58165810
5817- case CheckGenericArgumentsResult ::RequirementFailure:
5818- case CheckGenericArgumentsResult ::SubstitutionFailure:
5811+ case CheckRequirementsResult ::RequirementFailure:
5812+ case CheckRequirementsResult ::SubstitutionFailure:
58195813 return ProtocolConformanceRef::forInvalid ();
58205814 }
58215815 }
0 commit comments