diff --git a/include/swift/AST/NameLookupRequests.h b/include/swift/AST/NameLookupRequests.h index e40036b4933e3..2dc80b1c397b5 100644 --- a/include/swift/AST/NameLookupRequests.h +++ b/include/swift/AST/NameLookupRequests.h @@ -776,10 +776,11 @@ void simple_display(llvm::raw_ostream &out, SourceLoc extractNearestSourceLoc(const LookupConformanceDescriptor &desc); -class LookupConformanceInModuleRequest - : public SimpleRequest { + RequestFlags::Uncached | + RequestFlags::DependencySink> { public: using SimpleRequest::SimpleRequest; diff --git a/include/swift/AST/NameLookupTypeIDZone.def b/include/swift/AST/NameLookupTypeIDZone.def index dd302064e1f3a..b400d3de6ed6c 100644 --- a/include/swift/AST/NameLookupTypeIDZone.def +++ b/include/swift/AST/NameLookupTypeIDZone.def @@ -52,7 +52,7 @@ SWIFT_REQUEST(NameLookup, AllInheritedProtocolsRequest, SWIFT_REQUEST(NameLookup, ProtocolRequirementsRequest, ArrayRef(ProtocolDecl *), SeparatelyCached, NoLocationInfo) -SWIFT_REQUEST(NameLookup, LookupConformanceInModuleRequest, +SWIFT_REQUEST(NameLookup, LookupConformanceRequest, ProtocolConformanceRef(LookupConformanceDescriptor), Uncached, NoLocationInfo) SWIFT_REQUEST(NameLookup, LookupInModuleRequest, diff --git a/lib/AST/ConformanceLookup.cpp b/lib/AST/ConformanceLookup.cpp index 4a589f8cf2fda..aa26434073d08 100644 --- a/lib/AST/ConformanceLookup.cpp +++ b/lib/AST/ConformanceLookup.cpp @@ -202,7 +202,7 @@ ProtocolConformanceRef swift::lookupConformance(Type type, // If we are recursively checking for implicit conformance of a nominal // type to a KnownProtocol, fail without evaluating this request. This // squashes cycles. - LookupConformanceInModuleRequest request{{type, protocol}}; + LookupConformanceRequest request{{type, protocol}}; if (auto kp = protocol->getKnownProtocolKind()) { if (auto nominal = type->getAnyNominal()) { ImplicitKnownProtocolConformanceRequest icvRequest{nominal, *kp}; @@ -543,8 +543,8 @@ static ProtocolConformanceRef getPackTypeConformance( } ProtocolConformanceRef -LookupConformanceInModuleRequest::evaluate( - Evaluator &evaluator, LookupConformanceDescriptor desc) const { +LookupConformanceRequest::evaluate(Evaluator &evaluator, + LookupConformanceDescriptor desc) const { auto type = desc.Ty; auto *protocol = desc.PD; ASTContext &ctx = protocol->getASTContext(); diff --git a/lib/AST/NameLookupRequests.cpp b/lib/AST/NameLookupRequests.cpp index d78ed3b17af2f..75d3217131b9c 100644 --- a/lib/AST/NameLookupRequests.cpp +++ b/lib/AST/NameLookupRequests.cpp @@ -427,10 +427,10 @@ void ModuleQualifiedLookupRequest::writeDependencySink( } //----------------------------------------------------------------------------// -// LookupConformanceInModuleRequest computation. +// LookupConformanceRequest computation. //----------------------------------------------------------------------------// -void LookupConformanceInModuleRequest::writeDependencySink( +void LookupConformanceRequest::writeDependencySink( evaluator::DependencyCollector &reqTracker, ProtocolConformanceRef lookupResult) const { if (lookupResult.isInvalid() || !lookupResult.isConcrete())