Skip to content

Commit 4bbad02

Browse files
committed
[NFC] Supplant RequirementCheckResult with CheckGenericArgumentsResult::Kind
1 parent 3f37b7c commit 4bbad02

8 files changed

+30
-36
lines changed

lib/Sema/CSStep.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -616,7 +616,7 @@ bool IsDeclRefinementOfRequest::evaluate(Evaluator &evaluator,
616616
genericSignatureB.getRequirements(),
617617
QueryTypeSubstitutionMap{ substMap });
618618

619-
if (result != RequirementCheckResult::Success)
619+
if (result != CheckGenericArgumentsResult::Success)
620620
return false;
621621

622622
return substTypeA->isEqual(substTypeB);

lib/Sema/CodeSynthesis.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -749,7 +749,7 @@ createDesignatedInitOverride(ClassDecl *classDecl,
749749
return GenericEnvironment::mapTypeIntoContext(
750750
genericEnv, substType);
751751
});
752-
if (checkResult != RequirementCheckResult::Success)
752+
if (checkResult != CheckGenericArgumentsResult::Success)
753753
return nullptr;
754754
}
755755

lib/Sema/IDETypeCheckingRequests.cpp

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -134,9 +134,10 @@ static bool isExtensionAppliedInternal(const DeclContext *DC, Type BaseTy,
134134
auto *module = DC->getParentModule();
135135
SubstitutionMap substMap = BaseTy->getContextSubstitutionMap(
136136
module, ED->getExtendedNominal());
137-
return TypeChecker::checkGenericArguments(
138-
module, genericSig.getRequirements(),
139-
QuerySubstitutionMap{substMap}) == RequirementCheckResult::Success;
137+
return TypeChecker::checkGenericArguments(module,
138+
genericSig.getRequirements(),
139+
QuerySubstitutionMap{substMap}) ==
140+
CheckGenericArgumentsResult::Success;
140141
}
141142

142143
static bool isMemberDeclAppliedInternal(const DeclContext *DC, Type BaseTy,
@@ -170,9 +171,10 @@ static bool isMemberDeclAppliedInternal(const DeclContext *DC, Type BaseTy,
170171

171172
// Note: we treat substitution failure as success, to avoid tripping
172173
// up over generic parameters introduced by the declaration itself.
173-
return TypeChecker::checkGenericArguments(
174-
module, genericSig.getRequirements(),
175-
QuerySubstitutionMap{substMap}) != RequirementCheckResult::Failure;
174+
return TypeChecker::checkGenericArguments(module,
175+
genericSig.getRequirements(),
176+
QuerySubstitutionMap{substMap}) !=
177+
CheckGenericArgumentsResult::RequirementFailure;
176178
}
177179

178180
bool

lib/Sema/TypeCheckAttr.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2999,7 +2999,7 @@ TypeEraserHasViableInitRequest::evaluate(Evaluator &evaluator,
29992999
return getSubstitution(type);
30003000
});
30013001

3002-
if (result != RequirementCheckResult::Success) {
3002+
if (result != CheckGenericArgumentsResult::Success) {
30033003
unviable.push_back(
30043004
std::make_tuple(init, UnviableReason::UnsatisfiedRequirements,
30053005
genericParamType));

lib/Sema/TypeCheckGeneric.cpp

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -957,11 +957,9 @@ CheckGenericArgumentsResult TypeChecker::checkGenericArgumentsForDiagnostics(
957957
return CheckGenericArgumentsResult::createSuccess();
958958
}
959959

960-
RequirementCheckResult
961-
TypeChecker::checkGenericArguments(ModuleDecl *module,
962-
ArrayRef<Requirement> requirements,
963-
TypeSubstitutionFn substitutions,
964-
SubstOptions options) {
960+
CheckGenericArgumentsResult::Kind TypeChecker::checkGenericArguments(
961+
ModuleDecl *module, ArrayRef<Requirement> requirements,
962+
TypeSubstitutionFn substitutions, SubstOptions options) {
965963
SmallVector<Requirement, 4> worklist;
966964
bool valid = true;
967965

@@ -978,15 +976,15 @@ TypeChecker::checkGenericArguments(ModuleDecl *module,
978976
auto req = worklist.pop_back_val();
979977
ArrayRef<Requirement> conditionalRequirements;
980978
if (!req.isSatisfied(conditionalRequirements, /*allowMissing=*/true))
981-
return RequirementCheckResult::Failure;
979+
return CheckGenericArgumentsResult::RequirementFailure;
982980

983981
worklist.append(conditionalRequirements.begin(),
984982
conditionalRequirements.end());
985983
}
986984

987985
if (valid)
988-
return RequirementCheckResult::Success;
989-
return RequirementCheckResult::SubstitutionFailure;
986+
return CheckGenericArgumentsResult::Success;
987+
return CheckGenericArgumentsResult::SubstitutionFailure;
990988
}
991989

992990
Requirement

lib/Sema/TypeCheckProtocol.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5676,11 +5676,11 @@ TypeChecker::conformsToProtocol(Type T, ProtocolDecl *Proto, ModuleDecl *M,
56765676
M, *condReqs,
56775677
[](SubstitutableType *dependentType) { return Type(dependentType); });
56785678
switch (conditionalCheckResult) {
5679-
case RequirementCheckResult::Success:
5679+
case CheckGenericArgumentsResult::Success:
56805680
break;
56815681

5682-
case RequirementCheckResult::Failure:
5683-
case RequirementCheckResult::SubstitutionFailure:
5682+
case CheckGenericArgumentsResult::RequirementFailure:
5683+
case CheckGenericArgumentsResult::SubstitutionFailure:
56845684
return ProtocolConformanceRef::forInvalid();
56855685
}
56865686
}

lib/Sema/TypeCheckProtocolInference.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1135,12 +1135,12 @@ bool AssociatedTypeInference::checkCurrentTypeWitnesses(
11351135
switch (TypeChecker::checkGenericArguments(
11361136
dc->getParentModule(), sanitizedRequirements,
11371137
QuerySubstitutionMap{substitutions}, options)) {
1138-
case RequirementCheckResult::Failure:
1138+
case CheckGenericArgumentsResult::RequirementFailure:
11391139
++NumSolutionStatesFailedCheck;
11401140
return true;
11411141

1142-
case RequirementCheckResult::Success:
1143-
case RequirementCheckResult::SubstitutionFailure:
1142+
case CheckGenericArgumentsResult::Success:
1143+
case CheckGenericArgumentsResult::SubstitutionFailure:
11441144
break;
11451145
}
11461146

@@ -1178,11 +1178,11 @@ bool AssociatedTypeInference::checkConstrainedExtension(ExtensionDecl *ext) {
11781178
switch (TypeChecker::checkGenericArguments(
11791179
dc->getParentModule(), ext->getGenericSignature().getRequirements(),
11801180
QueryTypeSubstitutionMap{subs}, options)) {
1181-
case RequirementCheckResult::Success:
1182-
case RequirementCheckResult::SubstitutionFailure:
1181+
case CheckGenericArgumentsResult::Success:
1182+
case CheckGenericArgumentsResult::SubstitutionFailure:
11831183
return false;
11841184

1185-
case RequirementCheckResult::Failure:
1185+
case CheckGenericArgumentsResult::RequirementFailure:
11861186
return true;
11871187
}
11881188
llvm_unreachable("unhandled result");

lib/Sema/TypeChecker.h

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -209,11 +209,6 @@ struct ParentConditionalConformance {
209209
ArrayRef<ParentConditionalConformance> conformances);
210210
};
211211

212-
/// The result of `checkGenericRequirement`.
213-
enum class RequirementCheckResult {
214-
Success, Failure, SubstitutionFailure
215-
};
216-
217212
class CheckGenericArgumentsResult {
218213
public:
219214
enum Kind { Success, RequirementFailure, SubstitutionFailure };
@@ -522,11 +517,10 @@ checkGenericArgumentsForDiagnostics(ModuleDecl *module,
522517
/// requirements. Unlike \c checkGenericArgumentsForDiagnostics, this version
523518
/// reports just the result of the check and doesn't provide additional
524519
/// information on requirement failures that is warranted for diagnostics.
525-
RequirementCheckResult checkGenericArguments(
526-
ModuleDecl *module,
527-
ArrayRef<Requirement> requirements,
528-
TypeSubstitutionFn substitutions,
529-
SubstOptions options = None);
520+
CheckGenericArgumentsResult::Kind
521+
checkGenericArguments(ModuleDecl *module, ArrayRef<Requirement> requirements,
522+
TypeSubstitutionFn substitutions,
523+
SubstOptions options = None);
530524

531525
/// Checks whether the generic requirements imposed on the nested type
532526
/// declaration \p decl (if present) are in agreement with the substitutions

0 commit comments

Comments
 (0)