@@ -926,7 +926,8 @@ TypeChecker::overApproximateAvailabilityAtLocation(SourceLoc loc,
926926}
927927
928928Optional<UnavailabilityReason>
929- TypeChecker::checkDeclarationAvailability (const Decl *D, ExportContext where) {
929+ TypeChecker::checkDeclarationAvailability (const Decl *D,
930+ const ExportContext &where) {
930931 auto *referenceDC = where.getDeclContext ();
931932 ASTContext &Context = referenceDC->getASTContext ();
932933 if (Context.LangOpts .DisableAvailabilityChecking ) {
@@ -1668,7 +1669,7 @@ const AvailableAttr *TypeChecker::getDeprecated(const Decl *D) {
16681669// / Returns true if the reference or any of its parents is an
16691670// / unconditional unavailable declaration for the same platform.
16701671static bool isInsideCompatibleUnavailableDeclaration (
1671- const ValueDecl *D, ExportContext where,
1672+ const ValueDecl *D, const ExportContext & where,
16721673 const AvailableAttr *attr) {
16731674 auto referencedPlatform = where.getUnavailablePlatformKind ();
16741675 if (!referencedPlatform)
@@ -2067,7 +2068,7 @@ getAccessorKindAndNameForDiagnostics(const ValueDecl *D) {
20672068}
20682069
20692070void TypeChecker::diagnoseIfDeprecated (SourceRange ReferenceRange,
2070- ExportContext Where,
2071+ const ExportContext & Where,
20712072 const ValueDecl *DeprecatedDecl,
20722073 const ApplyExpr *Call) {
20732074 const AvailableAttr *Attr = TypeChecker::getDeprecated (DeprecatedDecl);
@@ -2201,7 +2202,7 @@ void swift::diagnoseUnavailableOverride(ValueDecl *override,
22012202// / marked as unavailable, either through "unavailable" or "obsoleted:".
22022203bool swift::diagnoseExplicitUnavailability (const ValueDecl *D,
22032204 SourceRange R,
2204- ExportContext Where,
2205+ const ExportContext & Where,
22052206 const ApplyExpr *call,
22062207 DeclAvailabilityFlags Flags) {
22072208 return diagnoseExplicitUnavailability (D, R, Where, Flags,
@@ -2275,7 +2276,7 @@ bool isSubscriptReturningString(const ValueDecl *D, ASTContext &Context) {
22752276bool swift::diagnoseExplicitUnavailability (
22762277 const ValueDecl *D,
22772278 SourceRange R,
2278- ExportContext Where,
2279+ const ExportContext & Where,
22792280 DeclAvailabilityFlags Flags,
22802281 llvm::function_ref<void (InFlightDiagnostic &)> attachRenameFixIts) {
22812282 auto *Attr = AvailableAttr::isUnavailable (D);
@@ -2430,10 +2431,10 @@ class ExprAvailabilityWalker : public ASTWalker {
24302431 ASTContext &Context;
24312432 MemberAccessContext AccessContext = MemberAccessContext::Getter;
24322433 SmallVector<const Expr *, 16 > ExprStack;
2433- ExportContext Where;
2434+ const ExportContext & Where;
24342435
24352436public:
2436- explicit ExprAvailabilityWalker (ExportContext Where)
2437+ explicit ExprAvailabilityWalker (const ExportContext & Where)
24372438 : Context(Where.getDeclContext()->getASTContext()), Where(Where) {}
24382439
24392440 bool shouldWalkIntoSeparatelyCheckedClosure (ClosureExpr *expr) override {
@@ -2747,7 +2748,7 @@ bool
27472748swift::diagnoseDeclAvailability (const ValueDecl *D,
27482749 SourceRange R,
27492750 const ApplyExpr *call,
2750- ExportContext Where,
2751+ const ExportContext & Where,
27512752 DeclAvailabilityFlags Flags) {
27522753 assert (!Where.isImplicit ());
27532754
@@ -3025,7 +3026,7 @@ void swift::diagnoseStmtAvailability(const Stmt *S, DeclContext *DC,
30253026namespace {
30263027
30273028class TypeReprAvailabilityWalker : public ASTWalker {
3028- ExportContext where;
3029+ const ExportContext & where;
30293030 DeclAvailabilityFlags flags;
30303031
30313032 bool checkComponentIdentTypeRepr (ComponentIdentTypeRepr *ITR) {
@@ -3053,7 +3054,7 @@ class TypeReprAvailabilityWalker : public ASTWalker {
30533054public:
30543055 bool foundAnyIssues = false ;
30553056
3056- TypeReprAvailabilityWalker (ExportContext where,
3057+ TypeReprAvailabilityWalker (const ExportContext & where,
30573058 DeclAvailabilityFlags flags)
30583059 : where(where), flags(flags) {}
30593060
@@ -3088,7 +3089,8 @@ class TypeReprAvailabilityWalker : public ASTWalker {
30883089
30893090}
30903091
3091- bool swift::diagnoseTypeReprAvailability (const TypeRepr *T, ExportContext where,
3092+ bool swift::diagnoseTypeReprAvailability (const TypeRepr *T,
3093+ const ExportContext &where,
30923094 DeclAvailabilityFlags flags) {
30933095 if (!T)
30943096 return false ;
@@ -3101,11 +3103,11 @@ namespace {
31013103
31023104class ProblematicTypeFinder : public TypeDeclFinder {
31033105 SourceLoc Loc;
3104- ExportContext Where;
3106+ const ExportContext & Where;
31053107 DeclAvailabilityFlags Flags;
31063108
31073109public:
3108- ProblematicTypeFinder (SourceLoc Loc, ExportContext Where,
3110+ ProblematicTypeFinder (SourceLoc Loc, const ExportContext & Where,
31093111 DeclAvailabilityFlags Flags)
31103112 : Loc(Loc), Where(Where), Flags(Flags) {}
31113113
@@ -3179,15 +3181,16 @@ class ProblematicTypeFinder : public TypeDeclFinder {
31793181
31803182}
31813183
3182- void swift::diagnoseTypeAvailability (Type T, SourceLoc loc, ExportContext where,
3184+ void swift::diagnoseTypeAvailability (Type T, SourceLoc loc,
3185+ const ExportContext &where,
31833186 DeclAvailabilityFlags flags) {
31843187 if (!T)
31853188 return ;
31863189 T.walk (ProblematicTypeFinder (loc, where, flags));
31873190}
31883191
31893192void swift::diagnoseTypeAvailability (const TypeRepr *TR, Type T, SourceLoc loc,
3190- ExportContext where,
3193+ const ExportContext & where,
31913194 DeclAvailabilityFlags flags) {
31923195 if (diagnoseTypeReprAvailability (TR, where, flags))
31933196 return ;
@@ -3197,7 +3200,7 @@ void swift::diagnoseTypeAvailability(const TypeRepr *TR, Type T, SourceLoc loc,
31973200bool
31983201swift::diagnoseConformanceAvailability (SourceLoc loc,
31993202 ProtocolConformanceRef conformance,
3200- ExportContext where) {
3203+ const ExportContext & where) {
32013204 if (!conformance.isConcrete ())
32023205 return false ;
32033206 const ProtocolConformance *concreteConf = conformance.getConcrete ();
@@ -3216,7 +3219,7 @@ swift::diagnoseConformanceAvailability(SourceLoc loc,
32163219bool
32173220swift::diagnoseSubstitutionMapAvailability (SourceLoc loc,
32183221 SubstitutionMap subs,
3219- ExportContext where) {
3222+ const ExportContext & where) {
32203223 bool hadAnyIssues = false ;
32213224 for (ProtocolConformanceRef conformance : subs.getConformances ()) {
32223225 if (diagnoseConformanceAvailability (loc, conformance, where))
0 commit comments