@@ -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