Skip to content

Commit 0e297b0

Browse files
committed
RequirementMachine: Use Requirement::hasError() method
1 parent d8393bc commit 0e297b0

File tree

1 file changed

+9
-20
lines changed

1 file changed

+9
-20
lines changed

lib/AST/RequirementMachine/RequirementLowering.cpp

Lines changed: 9 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -692,12 +692,12 @@ bool swift::rewriting::diagnoseRequirementErrors(
692692

693693
switch (error.kind) {
694694
case RequirementError::Kind::InvalidTypeRequirement: {
695+
if (error.requirement.hasError())
696+
break;
697+
695698
Type subjectType = error.requirement.getFirstType();
696699
Type constraint = error.requirement.getSecondType();
697700

698-
if (subjectType->hasError() || constraint->hasError())
699-
break;
700-
701701
ctx.Diags.diagnose(loc, diag::requires_conformance_nonprotocol,
702702
subjectType, constraint);
703703
diagnosedError = true;
@@ -726,10 +726,11 @@ bool swift::rewriting::diagnoseRequirementErrors(
726726
}
727727

728728
case RequirementError::Kind::InvalidRequirementSubject: {
729-
auto subjectType = error.requirement.getFirstType();
730-
if (subjectType->hasError())
729+
if (error.requirement.hasError())
731730
break;
732731

732+
auto subjectType = error.requirement.getFirstType();
733+
733734
ctx.Diags.diagnose(loc, diag::requires_not_suitable_archetype,
734735
subjectType);
735736
diagnosedError = true;
@@ -740,24 +741,16 @@ bool swift::rewriting::diagnoseRequirementErrors(
740741
auto requirement = error.requirement;
741742
auto conflict = error.conflictingRequirement;
742743

743-
if (requirement.getFirstType()->hasError() ||
744-
(requirement.getKind() != RequirementKind::Layout &&
745-
requirement.getSecondType()->hasError())) {
746-
// Don't emit a cascading error.
744+
if (requirement.hasError())
747745
break;
748-
}
749746

750747
if (!conflict) {
751748
ctx.Diags.diagnose(loc, diag::requires_same_concrete_type,
752749
requirement.getFirstType(),
753750
requirement.getSecondType());
754751
} else {
755-
if (conflict->getFirstType()->hasError() ||
756-
(conflict->getKind() != RequirementKind::Layout &&
757-
conflict->getSecondType()->hasError())) {
758-
// Don't emit a cascading error.
752+
if (conflict->hasError())
759753
break;
760-
}
761754

762755
auto options = PrintOptions::forDiagnosticArguments();
763756
std::string requirements;
@@ -778,12 +771,8 @@ bool swift::rewriting::diagnoseRequirementErrors(
778771

779772
case RequirementError::Kind::RedundantRequirement: {
780773
auto requirement = error.requirement;
781-
if (requirement.getFirstType()->hasError() ||
782-
(requirement.getKind() != RequirementKind::Layout &&
783-
requirement.getSecondType()->hasError())) {
784-
// Don't emit a cascading error.
774+
if (requirement.hasError())
785775
break;
786-
}
787776

788777
switch (requirement.getKind()) {
789778
case RequirementKind::SameType:

0 commit comments

Comments
 (0)