You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: test/Sema/availability_versions.swift
+64-3Lines changed: 64 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -547,6 +547,9 @@ enum CompassPoint {
547
547
case WithPotentiallyUnavailablePayload(p :EnumIntroducedOn10_52) // expected-error {{'EnumIntroducedOn10_52' is only available in macOS 10.52 or newer}}
548
548
549
549
case WithPotentiallyUnavailablePayload1(p :EnumIntroducedOn10_52), WithPotentiallyUnavailablePayload2(p :EnumIntroducedOn10_52) // expected-error 2{{'EnumIntroducedOn10_52' is only available in macOS 10.52 or newer}}
550
+
551
+
@available(OSX, unavailable)
552
+
case WithPotentiallyUnavailablePayload3(p :EnumIntroducedOn10_52)
let _ :ClassAvailableOn10_51=methodWithPotentiallyUnavailableReturnType() // expected-error {{'ClassAvailableOn10_51' is only available in macOS 10.51 or newer}}
773
+
// expected-note@-1 {{add 'if #available' version check}}
classSubclassAvailableOn10_9OfClassAvailableOn10_51:ClassAvailableOn10_51{ // expected-error {{'ClassAvailableOn10_51' is only available in macOS 10.51 or newer}}
classSubclassAvailableOn10_9OfClassAvailableOn10_51AlsoAdoptingProtocolAvailableOn10_51:ClassAvailableOn10_51{ // expected-error {{'ClassAvailableOn10_51' is only available in macOS 10.51 or newer}}
940
+
classSubclassAvailableOn10_9OfClassAvailableOn10_51AlsoAdoptingProtocolAvailableOn10_51:ClassAvailableOn10_51,ProtocolAvailableOn10_51{ // expected-error {{'ClassAvailableOn10_51' is only available in macOS 10.51 or newer}}
900
941
}
901
942
902
943
classSomeGenericClass<T>{}
@@ -905,27 +946,48 @@ class SomeGenericClass<T> { }
905
946
classSubclassAvailableOn10_9OfSomeGenericClassOfProtocolAvailableOn10_51:SomeGenericClass<ProtocolAvailableOn10_51>{ // expected-error {{'ProtocolAvailableOn10_51' is only available in macOS 10.51 or newer}}
func GenericWhereClause<T>(_ t:T)where T:ProtocolAvailableOn10_51{ // expected-error * {{'ProtocolAvailableOn10_51' is only available in macOS 10.51 or newer}}
909
954
// expected-note@-1 * {{add @available attribute to enclosing global function}}
func GenericSignature<T :ProtocolAvailableOn10_51>(_ t:T){ // expected-error * {{'ProtocolAvailableOn10_51' is only available in macOS 10.51 or newer}}
913
962
// expected-note@-1 * {{add @available attribute to enclosing global function}}
structGenericType<T>{ // expected-note {{add @available attribute to enclosing generic struct}}
917
970
func nonGenericWhereClause()where T :ProtocolAvailableOn10_51{} // expected-error {{'ProtocolAvailableOn10_51' is only available in macOS 10.51 or newer}}
918
971
// expected-note@-1 {{add @available attribute to enclosing instance method}}
972
+
973
+
@available(OSX, unavailable)
974
+
func unavailableNonGenericWhereClause()where T :ProtocolAvailableOn10_51{}
919
975
920
976
structNestedTypewhere T :ProtocolAvailableOn10_51{} // expected-error {{'ProtocolAvailableOn10_51' is only available in macOS 10.51 or newer}}
921
977
// expected-note@-1 2{{add @available attribute to enclosing struct}}
978
+
979
+
@available(OSX, unavailable)
980
+
structUnavailableNestedTypewhere T :ProtocolAvailableOn10_51{}
922
981
}
923
982
924
983
// Extensions
925
984
926
985
extensionClassAvailableOn10_51{} // expected-error {{'ClassAvailableOn10_51' is only available in macOS 10.51 or newer}}
927
986
// expected-note@-1 {{add @available attribute to enclosing extension}}
928
987
988
+
@available(OSX, unavailable)
989
+
extensionClassAvailableOn10_51{}
990
+
929
991
@available(OSX, introduced:10.51)
930
992
extensionClassAvailableOn10_51{
931
993
func m(){
@@ -957,7 +1019,6 @@ extension ClassToExtend {
957
1019
// We allow protocol extensions for protocols that are less available than the
0 commit comments