Skip to content

Commit d1991f0

Browse files
authored
Merge pull request #84982 from tshortli/clang-importer-ios-availability-test
Tests: Fix `ClangImporter/availability_ios.swift` expected diagnostics
2 parents 41461e2 + cccc86e commit d1991f0

File tree

2 files changed

+43
-2
lines changed

2 files changed

+43
-2
lines changed

test/ClangImporter/availability_ios.swift

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
// RUN: %target-swift-frontend(mock-sdk: %clang-importer-sdk) -typecheck -verify -verify-ignore-unrelated -I %S/Inputs/custom-modules %s
2-
// RUN: %target-swift-frontend(mock-sdk: %clang-importer-sdk) -typecheck -verify -verify-ignore-unrelated -I %S/Inputs/custom-modules -application-extension %s
3-
// RUN: %target-swift-frontend(mock-sdk: %clang-importer-sdk) -typecheck -verify -verify-ignore-unrelated -I %S/Inputs/custom-modules -application-extension-library %s
2+
// RUN: %target-swift-frontend(mock-sdk: %clang-importer-sdk) -typecheck -verify -verify-ignore-unrelated -I %S/Inputs/custom-modules -application-extension %s -verify-additional-prefix extension-
3+
// RUN: %target-swift-frontend(mock-sdk: %clang-importer-sdk) -typecheck -verify -verify-ignore-unrelated -I %S/Inputs/custom-modules -application-extension-library %s -verify-additional-prefix extension-
44

55
// REQUIRES: OS=ios
6+
// UNSUPPORTED: OS=maccatalyst
67

78
import Foundation
89
import AvailabilityExtras
@@ -14,3 +15,25 @@ func test_unavailable_because_deprecated() {
1415
func test_swift_unavailable_wins() {
1516
unavailableWithOS() // expected-error {{'unavailableWithOS()' is unavailable in Swift}}
1617
}
18+
19+
20+
@available(iOS, introduced: 1.0)
21+
@available(macCatalyst, introduced: 1.0, obsoleted: 2.0)
22+
func obsoletedOnMacCatalystButNotIOS() { }
23+
24+
obsoletedOnMacCatalystButNotIOS() // no-error
25+
26+
@available(iOS, introduced: 1.0)
27+
@available(macCatalyst, introduced: 1.0, deprecated: 2.0)
28+
func deprecatedOnMacCatalystButNotIOS() { }
29+
30+
@available(iOS, introduced: 8.0)
31+
func maccatalyst_tests() {
32+
deprecatedOnMacCatalystButNotIOS() // no-warning
33+
34+
availableOnIOSButUnavailableOniOSAppExtension() // expected-extension-error {{'availableOnIOSButUnavailableOniOSAppExtension()' is unavailable in application extensions for iOS}}
35+
availableOnIOSAppExtensionButUnavailableOnmacCatalystAppExtension() // no-error
36+
37+
availableOnIOSButDeprecatedOniOSAppExtension() // expected-extension-warning {{'availableOnIOSButDeprecatedOniOSAppExtension()' was deprecated in application extensions for iOS 9.0}}
38+
availableOnIOSAppExtensionButDeprecatedOnmacCatalystAppExtension() // no-warning
39+
}

test/Inputs/clang-importer-sdk/usr/include/Foundation.h

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,24 @@ __attribute__((availability(ios,introduced=8.0)))
9090

9191
@end
9292

93+
94+
/// macCatalyst availability
95+
96+
void availableOnIOSButUnavailableOnmacCatalyst() __attribute__((availability(ios, introduced=8.0))) __attribute__((availability(maccatalyst, unavailable)));
97+
void availableOnIOSButDeprecatedOnmacCatalyst() __attribute__((availability(ios, introduced=8.0))) __attribute__((availability(maccatalyst, introduced=8.0, deprecated=9.0)));
98+
99+
void unavailableOnIOS() __attribute__((availability(ios, unavailable)));
100+
void deprecatedOniOSButNotOnmacCatalyst() __attribute__((availability(ios, introduced=8.0, deprecated=9.0))) __attribute__((availability(maccatalyst, introduced=8.0)));
101+
102+
void availableOnIOSButUnavailableOniOSAppExtension() __attribute__((availability(ios, introduced=8.0))) __attribute__((availability(ios_app_extension, unavailable)));
103+
void availableOnIOSButUnavailableOnmacCatalystAppExtension() __attribute__((availability(ios, introduced=8.0))) __attribute__((availability(maccatalyst_app_extension, unavailable)));
104+
void availableOnIOSAppExtensionButUnavailableOnmacCatalystAppExtension() __attribute__((availability(ios_application_extension, introduced=8.0))) __attribute__((availability(maccatalyst_app_extension, unavailable)));
105+
106+
void availableOnIOSButDeprecatedOniOSAppExtension() __attribute__((availability(ios, introduced=8.0))) __attribute__((availability(ios_app_extension, introduced=8.0, deprecated=9.0)));
107+
void availableOnIOSButDeprecatedOnmacCatalystAppExtension() __attribute__((availability(ios, introduced=8.0))) __attribute__((availability(maccatalyst_app_extension, introduced=8.0, deprecated=9.0)));
108+
void availableOnIOSAppExtensionButDeprecatedOnmacCatalystAppExtension() __attribute__((availability(ios_application_extension, introduced=8.0))) __attribute__((availability(maccatalyst_app_extension, introduced=8.0, deprecated=9.0)));
109+
110+
93111
@class NSString, NSArray, NSDictionary, NSSet, NSEnumerator;
94112

95113
@class NSMutableArray<ObjectType>;

0 commit comments

Comments
 (0)