Skip to content

Commit 92a634c

Browse files
authored
Merge pull request #29607 from devincoughlin/maccatalyst-5.2
[5.2] [Parse] Suppress unknown platform diagnostics for macCatalyst
2 parents 1933cc7 + 690f895 commit 92a634c

File tree

3 files changed

+31
-2
lines changed

3 files changed

+31
-2
lines changed

lib/Parse/ParseDecl.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -543,6 +543,11 @@ ParserResult<AvailableAttr> Parser::parseExtendedAvailabilitySpecList(
543543
if (AnyArgumentInvalid)
544544
return nullptr;
545545
if (!PlatformKind.hasValue()) {
546+
if (Platform == "macCatalyst" ||
547+
Platform == "macCatalystApplicationExtension") {
548+
// Suppress unknown platform diagnostic for macCatalyst.
549+
return nullptr;
550+
}
546551
diagnose(AttrLoc, diag::attr_availability_unknown_platform,
547552
Platform, AttrName);
548553
return nullptr;

lib/Parse/ParseExpr.cpp

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3665,8 +3665,13 @@ Parser::parsePlatformVersionConstraintSpec() {
36653665
platformFromString(PlatformIdentifier.str());
36663666

36673667
if (!Platform.hasValue() || Platform.getValue() == PlatformKind::none) {
3668-
diagnose(Tok, diag::avail_query_unrecognized_platform_name,
3669-
PlatformIdentifier);
3668+
// Diagnose unrecognized platforms, but suppress if the platform
3669+
// is macCatalyst.
3670+
if (!PlatformIdentifier.is("macCatalyst") &&
3671+
!PlatformIdentifier.is("macCatalystApplicationExtension")) {
3672+
diagnose(Tok, diag::avail_query_unrecognized_platform_name,
3673+
PlatformIdentifier);
3674+
}
36703675
Platform = PlatformKind::none;
36713676
}
36723677

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
// RUN: %target-typecheck-verify-swift
2+
3+
// Don't emit a warning when macatalyst is used in
4+
// availability markup.
5+
6+
@available(iOS, introduced: 52.0)
7+
@available(macCatalyst, introduced: 53.0)
8+
func long_form_availability() {}
9+
10+
@available(macCatalyst, unavailable) // no-warning
11+
@available(macCatalystApplicationExtension, unavailable) // no-warning
12+
func unavailable_on_catalyst() {}
13+
14+
@available(macCatalyst 53.0, macCatalystApplicationExtension 54.0, *) // no warning
15+
func short_form_availability() {}
16+
17+
18+
19+

0 commit comments

Comments
 (0)