Tests: Correct invalid platform versions in @available attributes.

This commit is contained in:
Allan Shortlidge
2025-06-08 12:15:53 -07:00
parent 3f305a48c8
commit e358cd6309
6 changed files with 26 additions and 26 deletions

View File

@@ -37,12 +37,12 @@ public func ~><T> (lhs: T, rhs: (T) -> Void) -> T {
}
struct S {
@available(macOS 20, *)
@available(macOS 50, *)
func f() {}
}
let s = S() ~> {
if #available(macOS 20.0, *) {
if #available(macOS 50.0, *) {
$0.f()
}
}

View File

@@ -230,11 +230,11 @@ extension PrivateProtoConformer : PrivateProto {
// NEGATIVE-NOT: extension {{(Swift.)?}}Bool{{.+}}Equatable
@available(macOS 10.97, iOS 22, *)
@available(macOS 10.97, iOS 13.22, *)
@available(tvOS, unavailable)
@available(swift 4.2.123)
public struct NestedAvailabilityOuter {
@available(iOS 23, *)
@available(iOS 13.23, *)
public struct Inner: PrivateSubProto {}
}
@@ -244,7 +244,7 @@ public struct NestedAvailabilityOuter {
// CHECK: @available(*, unavailable)
// CHECK-NEXT: extension conformances.NonSendable : @unchecked Swift.Sendable {
// CHECK-END: @available(macOS 10.97, iOS 23, *)
// CHECK-END: @available(macOS 10.97, iOS 13.23, *)
// CHECK-END: @available(tvOS, unavailable)
// CHECK-END: extension conformances.NestedAvailabilityOuter.Inner : conformances.PublicBaseProto {}

View File

@@ -1,5 +1,5 @@
// RUN: %target-swift-emit-silgen %s -target %target-cpu-apple-macosx10.15 -target-variant %target-cpu-apple-ios13.0-macabi | %FileCheck %s
// RUN: %target-swift-emit-silgen %s -target %target-cpu-apple-ios13.0-macabi -target-variant %target-cpu-apple-macosx10.15 | %FileCheck %s
// RUN: %target-swift-emit-silgen %s -target %target-cpu-apple-macosx10.15 -target-variant %target-cpu-apple-ios13.1-macabi | %FileCheck %s
// RUN: %target-swift-emit-silgen %s -target %target-cpu-apple-ios13.1-macabi -target-variant %target-cpu-apple-macosx10.15 | %FileCheck %s
// REQUIRES: OS=macosx || OS=maccatalyst

View File

@@ -5,7 +5,7 @@
// REQUIRES: OS=macosx
@available(macOS, introduced: 10.9, deprecated: 11.0, obsoleted: 18.1, message: "Everyone makes mistakes", renamed: "S2")
@available(macOS, introduced: 10.9, deprecated: 11.0, obsoleted: 15.1, message: "Everyone makes mistakes", renamed: "S2")
public struct S {}
// CHECK: "domain": "macOS"
@@ -19,7 +19,7 @@ public struct S {}
// CHECK-NEXT: "minor": 0
// CHECK: obsoleted
// CHECK-NEXT: "major": 18
// CHECK-NEXT: "major": 15
// CHECK-NEXT: "minor": 1
// CHECK: "message": "Everyone makes mistakes"

View File

@@ -10,19 +10,19 @@
// REQUIRES: OS=macosx
@available(macOS, obsoleted: 18.14)
@available(macOS, obsoleted: 98.14)
public struct S {
// LESSTHAN-LABEL: "precise": "s:17ObsoletedReplaced1SV8lessThanyyF",
// LESSTHAN: "availability": [
// LESSTHAN-NEXT: {
// LESSTHAN-NEXT: "domain": "macOS",
// LESSTHAN-NEXT: "obsoleted": {
// LESSTHAN-NEXT: "major": 18,
// LESSTHAN-NEXT: "major": 98,
// LESSTHAN-NEXT: "minor": 10
// LESSTHAN-NEXT: }
// LESSTHAN-NEXT: }
// LESSTHAN-NEXT: ]
@available(macOS, obsoleted: 18.10)
@available(macOS, obsoleted: 98.10)
public func lessThan() {}
// GREATERTHAN-LABEL: "precise": "s:17ObsoletedReplaced1SV11greaterThanyyF",
@@ -30,12 +30,12 @@ public struct S {
// GREATERTHAN-NEXT: {
// GREATERTHAN-NEXT: "domain": "macOS",
// GREATERTHAN-NEXT: "obsoleted": {
// GREATERTHAN-NEXT: "major": 18,
// GREATERTHAN-NEXT: "major": 98,
// GREATERTHAN-NEXT: "minor": 14
// GREATERTHAN-NEXT: }
// GREATERTHAN-NEXT: }
// GREATERTHAN-NEXT: ]
@available(macOS, obsoleted: 18.15)
@available(macOS, obsoleted: 98.15)
public func greaterThan() {}
// EQUAL-LABEL: "precise": "s:17ObsoletedReplaced1SV5equalyyF",
@@ -43,16 +43,16 @@ public struct S {
// EQUAL-NEXT: {
// EQUAL-NEXT: "domain": "macOS",
// EQUAL-NEXT: "obsoleted": {
// EQUAL-NEXT: "major": 18,
// EQUAL-NEXT: "major": 98,
// EQUAL-NEXT: "minor": 14
// EQUAL-NEXT: }
// EQUAL-NEXT: }
// EQUAL-NEXT: ]
@available(macOS, obsoleted: 18.14)
@available(macOS, obsoleted: 98.14)
public func equal() {}
}
@available(macOS, obsoleted: 18.14)
@available(macOS, obsoleted: 98.14)
public struct Outer {
public struct Inner {
// TRANSITIVELESSTHAN-LABEL: "precise": "s:17ObsoletedReplaced5OuterV5InnerV8lessThanyyF"
@@ -60,12 +60,12 @@ public struct Outer {
// TRANSITIVELESSTHAN-NEXT: {
// TRANSITIVELESSTHAN-NEXT: "domain": "macOS",
// TRANSITIVELESSTHAN-NEXT: "obsoleted": {
// TRANSITIVELESSTHAN-NEXT: "major": 18,
// TRANSITIVELESSTHAN-NEXT: "major": 98,
// TRANSITIVELESSTHAN-NEXT: "minor": 10
// TRANSITIVELESSTHAN-NEXT: }
// TRANSITIVELESSTHAN-NEXT: }
// TRANSITIVELESSTHAN-NEXT: ]
@available(macOS, obsoleted: 18.10)
@available(macOS, obsoleted: 98.10)
public func lessThan() {}
// TRANSITIVEGREATERTHAN-LABEL:"precise": "s:17ObsoletedReplaced5OuterV5InnerV11greaterThanyyF"
@@ -73,12 +73,12 @@ public struct Outer {
// TRANSITIVEGREATERTHAN-NEXT: {
// TRANSITIVEGREATERTHAN-NEXT: "domain": "macOS",
// TRANSITIVEGREATERTHAN-NEXT: "obsoleted": {
// TRANSITIVEGREATERTHAN-NEXT: "major": 18,
// TRANSITIVEGREATERTHAN-NEXT: "major": 98,
// TRANSITIVEGREATERTHAN-NEXT: "minor": 14
// TRANSITIVEGREATERTHAN-NEXT: }
// TRANSITIVEGREATERTHAN-NEXT: }
// TRANSITIVEGREATERTHAN-NEXT: ]
@available(macOS, obsoleted: 18.15)
@available(macOS, obsoleted: 98.15)
public func greaterThan() {}
// TRANSITIVEEQUAL-LABEL:"precise": "s:17ObsoletedReplaced5OuterV5InnerV5equalyyF"
@@ -86,12 +86,12 @@ public struct Outer {
// TRANSITIVEEQUAL-NEXT: {
// TRANSITIVEEQUAL-NEXT: "domain": "macOS",
// TRANSITIVEEQUAL-NEXT: "obsoleted": {
// TRANSITIVEEQUAL-NEXT: "major": 18,
// TRANSITIVEEQUAL-NEXT: "major": 98,
// TRANSITIVEEQUAL-NEXT: "minor": 14
// TRANSITIVEEQUAL-NEXT: }
// TRANSITIVEEQUAL-NEXT: }
// TRANSITIVEEQUAL-NEXT: ]
@available(macOS, obsoleted: 18.14)
@available(macOS, obsoleted: 98.14)
public func equal() {}
}
}

View File

@@ -41,12 +41,12 @@ class DeprecatedClass { }
func functionWithDeprecatedParameter(p: DeprecatedClass) { } // expected-warning{{'DeprecatedClass' was deprecated in visionOS 2.0: Use BetterClass instead}}
@available(visionOS, introduced: 2.0, deprecated: 4.0,
@available(visionOS, introduced: 2.0, deprecated: 2.1,
message: "Use BetterClass instead")
class DeprecatedClassIn3_0 { }
class DeprecatedClassIn2_1 { }
// Elements deprecated later than the minimum deployment target (which is 2.0, in this case) should not generate warnings
func functionWithDeprecatedLaterParameter(p: DeprecatedClassIn3_0) { }
func functionWithDeprecatedLaterParameter(p: DeprecatedClassIn2_1) { }
// Treat visionOS as an alias for iOS in availability queries