Skip to content

Commit 89ea92d

Browse files
committed
AST: Introduce ASTContext::getTargetPlatformStringForDiagnostics().
NFC.
1 parent 8ab7f54 commit 89ea92d

File tree

7 files changed

+21
-14
lines changed

7 files changed

+21
-14
lines changed

include/swift/AST/ASTContext.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1542,6 +1542,10 @@ class ASTContext final {
15421542

15431543
public:
15441544
clang::DarwinSDKInfo *getDarwinSDKInfo() const;
1545+
1546+
/// Returns the string to use in diagnostics when printing the platform being
1547+
/// targetted.
1548+
StringRef getTargetPlatformStringForDiagnostics() const;
15451549
};
15461550

15471551
} // end namespace swift

lib/AST/ASTContext.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6733,3 +6733,7 @@ ValueOwnership swift::asValueOwnership(ParameterOwnership o) {
67336733
}
67346734
llvm_unreachable("exhaustive switch");
67356735
}
6736+
6737+
StringRef ASTContext::getTargetPlatformStringForDiagnostics() const {
6738+
return prettyPlatformString(targetPlatform(LangOpts));
6739+
}

lib/IRGen/GenMeta.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5115,7 +5115,7 @@ diagnoseUnsupportedObjCImplLayout(IRGenModule &IGM, ClassDecl *classDecl,
51155115
diags.diagnose(
51165116
field.getVarDecl(),
51175117
diag::attr_objc_implementation_resilient_property_deployment_target,
5118-
prettyPlatformString(targetPlatform(ctx.LangOpts)),
5118+
ctx.getTargetPlatformStringForDiagnostics(),
51195119
currentAvailability.getRawMinimumVersion(),
51205120
requiredAvailability.getRawMinimumVersion());
51215121
else

lib/Sema/TypeCheckAttr.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1684,7 +1684,7 @@ visitObjCImplementationAttr(ObjCImplementationAttr *attr) {
16841684
auto diag = diagnose(
16851685
attr->getLocation(),
16861686
diag::attr_objc_implementation_raise_minimum_deployment_target,
1687-
prettyPlatformString(targetPlatform(Ctx.LangOpts)),
1687+
Ctx.getTargetPlatformStringForDiagnostics(),
16881688
Ctx.getSwift50Availability().getRawMinimumVersion());
16891689
if (attr->isEarlyAdopter()) {
16901690
diag.wrapIn(diag::wrap_objc_implementation_will_become_error);
@@ -2209,11 +2209,11 @@ void AttributeChecker::visitAvailableAttr(AvailableAttr *attr) {
22092209
diagnose(enclosingDecl->getLoc(),
22102210
diag::availability_implicit_decl_here,
22112211
D->getDescriptiveKind(),
2212-
prettyPlatformString(targetPlatform(Ctx.LangOpts)),
2212+
Ctx.getTargetPlatformStringForDiagnostics(),
22132213
AttrRange.getRawMinimumVersion());
22142214
diagnose(enclosingDecl->getLoc(),
22152215
diag::availability_decl_more_than_enclosing_here,
2216-
prettyPlatformString(targetPlatform(Ctx.LangOpts)),
2216+
Ctx.getTargetPlatformStringForDiagnostics(),
22172217
EnclosingAnnotatedRange->getRawMinimumVersion());
22182218
}
22192219
}

lib/Sema/TypeCheckAvailability.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2068,7 +2068,7 @@ void TypeChecker::diagnosePotentialUnavailability(
20682068
{
20692069
auto Err = Context.Diags.diagnose(
20702070
ReferenceRange.Start, Diag,
2071-
prettyPlatformString(targetPlatform(Context.LangOpts)),
2071+
Context.getTargetPlatformStringForDiagnostics(),
20722072
Availability.getRawMinimumVersion());
20732073

20742074
// Direct a fixit to the error if an existing guard is nearly-correct
@@ -2122,7 +2122,7 @@ static Diagnostic getPotentialUnavailabilityDiagnostic(
21222122
const AvailabilityContext &Availability, bool WarnBeforeDeploymentTarget,
21232123
bool &IsError) {
21242124
ASTContext &Context = ReferenceDC->getASTContext();
2125-
auto Platform = prettyPlatformString(targetPlatform(Context.LangOpts));
2125+
auto Platform = Context.getTargetPlatformStringForDiagnostics();
21262126

21272127
if (requiresDeploymentTargetOrEarlier(Availability, Context)) {
21282128
// The required OS version is at or before the deployment target so this
@@ -2179,7 +2179,7 @@ void TypeChecker::diagnosePotentialAccessorUnavailability(
21792179
{
21802180
auto Err = Context.Diags.diagnose(
21812181
ReferenceRange.Start, diag, Accessor,
2182-
prettyPlatformString(targetPlatform(Context.LangOpts)),
2182+
Context.getTargetPlatformStringForDiagnostics(),
21832183
Availability.getRawMinimumVersion());
21842184

21852185
// Direct a fixit to the error if an existing guard is nearly-correct
@@ -2221,7 +2221,7 @@ void TypeChecker::diagnosePotentialUnavailability(
22212221
auto proto = rootConf->getProtocol()->getDeclaredInterfaceType();
22222222
auto err = ctx.Diags.diagnose(
22232223
loc, diag::conformance_availability_only_version_newer, type, proto,
2224-
prettyPlatformString(targetPlatform(ctx.LangOpts)),
2224+
ctx.getTargetPlatformStringForDiagnostics(),
22252225
availability.getRawMinimumVersion());
22262226

22272227
err.warnUntilSwiftVersion(6);

lib/Sema/TypeCheckDeclObjC.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -574,14 +574,13 @@ static bool checkObjCInExtensionContext(const ValueDecl *value,
574574
AncestryFlags::ResilientOther) ||
575575
classDecl->hasResilientMetadata(mod,
576576
ResilienceExpansion::Maximal)) {
577-
auto platform = prettyPlatformString(targetPlatform(ctx.LangOpts));
578577
auto stubAvailability = getObjCClassStubAvailability(ctx);
579578
auto *ancestor = getResilientAncestor(mod, classDecl);
580579
softenIfAccessNote(value, reason.getAttr(),
581580
value->diagnose(diag::objc_in_resilient_extension,
582581
value->getDescriptiveKind(),
583582
ancestor->getName(),
584-
platform,
583+
ctx.getTargetPlatformStringForDiagnostics(),
585584
stubAvailability.getRawMinimumVersion())
586585
.limitBehavior(behavior));
587586
reason.describe(value);
@@ -1322,11 +1321,11 @@ static std::optional<ObjCReason> shouldMarkClassAsObjC(const ClassDecl *CD) {
13221321
return std::nullopt;
13231322
}
13241323

1325-
auto platform = prettyPlatformString(targetPlatform(ctx.LangOpts));
13261324
auto stubAvailability = getObjCClassStubAvailability(ctx);
13271325
auto *ancestor = getResilientAncestor(CD->getParentModule(), CD);
13281326
swift::diagnoseAndRemoveAttr(CD, attr, diag::objc_for_resilient_class,
1329-
ancestor->getName(), platform,
1327+
ancestor->getName(),
1328+
ctx.getTargetPlatformStringForDiagnostics(),
13301329
stubAvailability.getRawMinimumVersion())
13311330
.limitBehavior(behavior);
13321331
reason.describe(CD);

lib/Sema/TypeCheckProtocol.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4314,7 +4314,7 @@ ConformanceChecker::resolveWitnessViaLookup(ValueDecl *requirement) {
43144314
SourceLoc diagLoc = getLocForDiagnosingWitness(conformance, witness);
43154315
diags.diagnose(diagLoc, diag::availability_protocol_requires_version,
43164316
conformance->getProtocol(), witness,
4317-
prettyPlatformString(targetPlatform(ctx.LangOpts)),
4317+
ctx.getTargetPlatformStringForDiagnostics(),
43184318
check.RequiredAvailability.getRawMinimumVersion());
43194319
emitDeclaredHereIfNeeded(diags, diagLoc, witness);
43204320
diags.diagnose(requirement,
@@ -4829,7 +4829,7 @@ static bool diagnoseTypeWitnessAvailability(
48294829
ctx.Diags
48304830
.diagnose(loc, diag::availability_protocol_requires_version,
48314831
conformance->getProtocol(), witness,
4832-
prettyPlatformString(targetPlatform(ctx.LangOpts)),
4832+
ctx.getTargetPlatformStringForDiagnostics(),
48334833
requiredVersion)
48344834
.warnUntilSwiftVersion(warnBeforeVersion);
48354835

0 commit comments

Comments
 (0)