@@ -624,7 +624,7 @@ class GenericSignatureBuilder {
624
624
625
625
GenericSignature rebuildSignatureWithoutRedundantRequirements (
626
626
bool allowConcreteGenericParams,
627
- bool buildingRequirementSignature ) &&;
627
+ const ProtocolDecl *requirementSignatureSelfProto ) &&;
628
628
629
629
// / Finalize the set of requirements and compute the generic
630
630
// / signature.
@@ -633,7 +633,7 @@ class GenericSignatureBuilder {
633
633
// / generic signature builder no longer has valid state.
634
634
GenericSignature computeGenericSignature (
635
635
bool allowConcreteGenericParams = false ,
636
- bool buildingRequirementSignature = false ,
636
+ const ProtocolDecl *requirementSignatureSelfProto = nullptr ,
637
637
bool rebuildingWithoutRedundantConformances = false ) &&;
638
638
639
639
// / Compute the requirement signature for the given protocol.
@@ -646,7 +646,8 @@ class GenericSignatureBuilder {
646
646
// / \param allowConcreteGenericParams If true, allow generic parameters to
647
647
// / be made concrete.
648
648
void finalize (TypeArrayView<GenericTypeParamType> genericParams,
649
- bool allowConcreteGenericParams=false );
649
+ bool allowConcreteGenericParams,
650
+ const ProtocolDecl *requirementSignatureSelfProto);
650
651
651
652
public:
652
653
// / Process any delayed requirements that can be handled now.
@@ -657,14 +658,12 @@ class GenericSignatureBuilder {
657
658
bool isRedundantExplicitRequirement (const ExplicitRequirement &req) const ;
658
659
659
660
private:
660
- void computeRedundantRequirements ();
661
+ void computeRedundantRequirements (const ProtocolDecl *requirementSignatureSelfProto );
661
662
662
663
void diagnoseRedundantRequirements () const ;
663
664
664
665
void diagnoseConflictingConcreteTypeRequirements () const ;
665
666
666
- bool hasExplicitConformancesImpliedByConcrete () const ;
667
-
668
667
// / Describes the relationship between a given constraint and
669
668
// / the canonical constraint of the equivalence class.
670
669
enum class ConstraintRelation {
0 commit comments