@@ -611,10 +611,11 @@ GenericSignatureErrors RewriteSystem::getErrors() const {
611611 if (!isInMinimizationDomain (rule.getLHS ().getRootProtocol ()))
612612 continue ;
613613
614- if (!rule.isRedundant () &&
615- !rule.isProtocolTypeAliasRule () &&
616- rule.containsNameSymbols ())
617- result |= GenericSignatureErrorFlags::HasInvalidRequirements;
614+ if (!rule.isRedundant ()) {
615+ if (!rule.isProtocolTypeAliasRule () &&
616+ rule.containsNameSymbols ())
617+ result |= GenericSignatureErrorFlags::HasInvalidRequirements;
618+ }
618619
619620 if (rule.isRecursive ())
620621 result |= GenericSignatureErrorFlags::HasInvalidRequirements;
@@ -624,12 +625,9 @@ GenericSignatureErrors RewriteSystem::getErrors() const {
624625 if (property->getKind () == Symbol::Kind::ConcreteConformance)
625626 result |= GenericSignatureErrorFlags::HasConcreteConformances;
626627
627- if (property->hasSubstitutions ()) {
628- for (auto t : property->getSubstitutions ()) {
629- if (t.containsNameSymbols ())
630- result |= GenericSignatureErrorFlags::HasInvalidRequirements;
631- }
632- }
628+ if (property->hasSubstitutions () &&
629+ property->containsNameSymbols ())
630+ result |= GenericSignatureErrorFlags::HasInvalidRequirements;
633631 }
634632 }
635633 }
@@ -661,10 +659,20 @@ RewriteSystem::getMinimizedProtocolRules() const {
661659 if (!isInMinimizationDomain (proto))
662660 continue ;
663661
664- if (rule.isProtocolTypeAliasRule ())
662+ if (rule.isProtocolTypeAliasRule ()) {
663+ if (auto property = rule.isPropertyRule ()) {
664+ if (property->containsNameSymbols ())
665+ continue ;
666+ } else if (rule.getRHS ().containsNameSymbols ()) {
667+ continue ;
668+ }
665669 rules[proto].TypeAliases .push_back (ruleID);
666- else if (!rule.containsNameSymbols ())
670+ } else {
671+ if (rule.containsNameSymbols ())
672+ continue ;
673+
667674 rules[proto].Requirements .push_back (ruleID);
675+ }
668676 }
669677
670678 return rules;
0 commit comments