@@ -387,6 +387,25 @@ class StructuralRequirementsRequest :
387387 bool isCached () const { return true ; }
388388};
389389
390+ class TypeAliasRequirementsRequest :
391+ public SimpleRequest<TypeAliasRequirementsRequest,
392+ ArrayRef<Requirement>(ProtocolDecl *),
393+ RequestFlags::Cached> {
394+ public:
395+ using SimpleRequest::SimpleRequest;
396+
397+ private:
398+ friend SimpleRequest;
399+
400+ // Evaluation.
401+ ArrayRef<Requirement>
402+ evaluate (Evaluator &evaluator, ProtocolDecl *proto) const ;
403+
404+ public:
405+ // Caching.
406+ bool isCached () const { return true ; }
407+ };
408+
390409class ProtocolDependenciesRequest :
391410 public SimpleRequest<ProtocolDependenciesRequest,
392411 ArrayRef<ProtocolDecl *>(ProtocolDecl *),
@@ -1534,7 +1553,50 @@ class InferredGenericSignatureRequest :
15341553 SourceLoc getNearestLoc () const {
15351554 return SourceLoc ();
15361555 }
1537-
1556+
1557+ // Cycle handling.
1558+ void noteCycleStep (DiagnosticEngine &diags) const ;
1559+ };
1560+
1561+ // / Build a generic signature using the RequirementMachine. This is temporary;
1562+ // / once the GenericSignatureBuilder goes away this will be folded into
1563+ // / InferredGenericSignatureRequest.
1564+ class InferredGenericSignatureRequestRQM :
1565+ public SimpleRequest<InferredGenericSignatureRequestRQM,
1566+ GenericSignatureWithError (ModuleDecl *,
1567+ const GenericSignatureImpl *,
1568+ GenericParamList *,
1569+ WhereClauseOwner,
1570+ SmallVector<Requirement, 2 >,
1571+ SmallVector<TypeLoc, 2 >,
1572+ bool ),
1573+ RequestFlags::Cached> {
1574+ public:
1575+ using SimpleRequest::SimpleRequest;
1576+
1577+ private:
1578+ friend SimpleRequest;
1579+
1580+ // Evaluation.
1581+ GenericSignatureWithError
1582+ evaluate (Evaluator &evaluator,
1583+ ModuleDecl *parentModule,
1584+ const GenericSignatureImpl *baseSignature,
1585+ GenericParamList *genericParams,
1586+ WhereClauseOwner whereClause,
1587+ SmallVector<Requirement, 2 > addedRequirements,
1588+ SmallVector<TypeLoc, 2 > inferenceSources,
1589+ bool allowConcreteGenericParams) const ;
1590+
1591+ public:
1592+ // Separate caching.
1593+ bool isCached () const { return true ; }
1594+
1595+ // / Inferred generic signature requests don't have source-location info.
1596+ SourceLoc getNearestLoc () const {
1597+ return SourceLoc ();
1598+ }
1599+
15381600 // Cycle handling.
15391601 void noteCycleStep (DiagnosticEngine &diags) const ;
15401602};
0 commit comments