@@ -547,6 +547,10 @@ class GenericSignatureBuilder {
547
547
const RequirementSource *source)> f);
548
548
549
549
public:
550
+ // / Retrieve the generic parameters used to describe the generic
551
+ // / signature being built.
552
+ ArrayRef<GenericTypeParamType *> getGenericParams () const ;
553
+
550
554
// / \brief Add a new generic parameter for which there may be requirements.
551
555
void addGenericParameter (GenericTypeParamDecl *GenericParam);
552
556
@@ -1455,7 +1459,8 @@ struct GenericSignatureBuilder::Constraint {
1455
1459
const RequirementSource *source;
1456
1460
1457
1461
// / Retrieve the dependent type describing the subject of the constraint.
1458
- Type getSubjectDependentType () const ;
1462
+ Type getSubjectDependentType (
1463
+ ArrayRef<GenericTypeParamType *> genericParams) const ;
1459
1464
1460
1465
// / Realizes and retrieves the potential archetype describing the
1461
1466
// / subject of the constraint.
@@ -1560,15 +1565,6 @@ class GenericSignatureBuilder::PotentialArchetype {
1560
1565
PotentialArchetype *getRepresentative () const ;
1561
1566
1562
1567
private:
1563
- // / Retrieve the generic signature builder with which this archetype is
1564
- // / associated.
1565
- GenericSignatureBuilder *getBuilder () const {
1566
- const PotentialArchetype *pa = this ;
1567
- while (auto parent = pa->getParent ())
1568
- pa = parent;
1569
- return pa->parentOrBuilder .get <GenericSignatureBuilder *>();
1570
- }
1571
-
1572
1568
// Replace the generic signature builder.
1573
1569
void replaceBuilder (GenericSignatureBuilder *builder) {
1574
1570
assert (parentOrBuilder.is <GenericSignatureBuilder *>());
@@ -1729,7 +1725,10 @@ class GenericSignatureBuilder::PotentialArchetype {
1729
1725
1730
1726
return false ;
1731
1727
}
1732
-
1728
+
1729
+ // / Retrieve the AST context in which this potential archetype resides.
1730
+ ASTContext &getASTContext () const ;
1731
+
1733
1732
LLVM_ATTRIBUTE_DEPRECATED (
1734
1733
void dump () const ,
1735
1734
"only for use within the debugger");
0 commit comments