2
2
3
3
// REQUIRES: concurrency
4
4
5
- @available ( macOS 12 . 0 , iOS 15 . 0 , watchOS 8 . 0 , tvOS 15 . 0 , * )
5
+ @available ( SwiftStdlib 5 . 5 , * )
6
6
func doAsynchronously( ) async { }
7
- @available ( macOS 12 . 0 , iOS 15 . 0 , watchOS 8 . 0 , tvOS 15 . 0 , * )
7
+ @available ( SwiftStdlib 5 . 5 , * )
8
8
func doSynchronously( ) { }
9
9
10
- @available ( macOS 12 . 0 , iOS 15 . 0 , watchOS 8 . 0 , tvOS 15 . 0 , * )
10
+ @available ( SwiftStdlib 5 . 5 , * )
11
11
func testConversions( ) async {
12
12
let _: ( ) -> Void = doAsynchronously // expected-error{{invalid conversion from 'async' function of type '() async -> ()' to synchronous function type '() -> Void'}}
13
13
let _: ( ) async -> Void = doSynchronously // okay
14
14
}
15
15
16
16
// Overloading
17
- @available ( macOS 12 . 0 , iOS 15 . 0 , watchOS 8 . 0 , tvOS 15 . 0 , * )
17
+ @available ( SwiftStdlib 5 . 5 , * )
18
18
@available ( swift, deprecated: 4.0 , message: " synchronous is no fun " )
19
19
func overloadedSame( _: Int = 0 ) -> String { " synchronous " }
20
20
21
- @available ( macOS 12 . 0 , iOS 15 . 0 , watchOS 8 . 0 , tvOS 15 . 0 , * )
21
+ @available ( SwiftStdlib 5 . 5 , * )
22
22
func overloadedSame( ) async -> String { " asynchronous " }
23
23
24
- @available ( macOS 12 . 0 , iOS 15 . 0 , watchOS 8 . 0 , tvOS 15 . 0 , * )
24
+ @available ( SwiftStdlib 5 . 5 , * )
25
25
func overloaded( ) -> String { " synchronous " }
26
- @available ( macOS 12 . 0 , iOS 15 . 0 , watchOS 8 . 0 , tvOS 15 . 0 , * )
26
+ @available ( SwiftStdlib 5 . 5 , * )
27
27
func overloaded( ) async -> Double { 3.14159 }
28
28
29
- @available ( macOS 12 . 0 , iOS 15 . 0 , watchOS 8 . 0 , tvOS 15 . 0 , * )
29
+ @available ( SwiftStdlib 5 . 5 , * )
30
30
@available ( swift, deprecated: 4.0 , message: " synchronous is no fun " )
31
31
func overloadedOptDifference( ) -> String { " synchronous " }
32
32
33
- @available ( macOS 12 . 0 , iOS 15 . 0 , watchOS 8 . 0 , tvOS 15 . 0 , * )
33
+ @available ( SwiftStdlib 5 . 5 , * )
34
34
func overloadedOptDifference( ) async -> String ? { nil }
35
35
36
- @available ( macOS 12 . 0 , iOS 15 . 0 , watchOS 8 . 0 , tvOS 15 . 0 , * )
36
+ @available ( SwiftStdlib 5 . 5 , * )
37
37
func testOverloadedSync( ) {
38
38
_ = overloadedSame ( ) // expected-warning{{synchronous is no fun}}
39
39
@@ -63,7 +63,7 @@ func testOverloadedSync() {
63
63
let _: Int = fn4 // expected-error{{value of type '() async -> ()'}}
64
64
}
65
65
66
- @available ( macOS 12 . 0 , iOS 15 . 0 , watchOS 8 . 0 , tvOS 15 . 0 , * )
66
+ @available ( SwiftStdlib 5 . 5 , * )
67
67
func testOverloadedAsync( ) async {
68
68
_ = await overloadedSame ( ) // no warning
69
69
@@ -98,12 +98,12 @@ func testOverloadedAsync() async {
98
98
let _: Int = fn4 // expected-error{{value of type '() async -> ()'}}
99
99
}
100
100
101
- @available ( macOS 12 . 0 , iOS 15 . 0 , watchOS 8 . 0 , tvOS 15 . 0 , * )
101
+ @available ( SwiftStdlib 5 . 5 , * )
102
102
func takesAsyncClosure( _ closure: ( ) async -> String ) -> Int { 0 }
103
- @available ( macOS 12 . 0 , iOS 15 . 0 , watchOS 8 . 0 , tvOS 15 . 0 , * )
103
+ @available ( SwiftStdlib 5 . 5 , * )
104
104
func takesAsyncClosure( _ closure: ( ) -> String ) -> String { " " }
105
105
106
- @available ( macOS 12 . 0 , iOS 15 . 0 , watchOS 8 . 0 , tvOS 15 . 0 , * )
106
+ @available ( SwiftStdlib 5 . 5 , * )
107
107
func testPassAsyncClosure( ) {
108
108
let a = takesAsyncClosure { await overloadedSame ( ) }
109
109
let _: Double = a // expected-error{{convert value of type 'Int'}}
@@ -112,7 +112,7 @@ func testPassAsyncClosure() {
112
112
let _: Double = b // expected-error{{convert value of type 'String'}}
113
113
}
114
114
115
- @available ( macOS 12 . 0 , iOS 15 . 0 , watchOS 8 . 0 , tvOS 15 . 0 , * )
115
+ @available ( SwiftStdlib 5 . 5 , * )
116
116
struct FunctionTypes {
117
117
var syncNonThrowing : ( ) -> Void
118
118
var syncThrowing : ( ) throws -> Void
@@ -135,27 +135,27 @@ struct FunctionTypes {
135
135
}
136
136
137
137
// Overloading when there is conversion from sync to async.
138
- @available ( macOS 12 . 0 , iOS 15 . 0 , watchOS 8 . 0 , tvOS 15 . 0 , * )
138
+ @available ( SwiftStdlib 5 . 5 , * )
139
139
func bar( _ f: ( Int ) -> Int ) -> Int {
140
140
return f ( 2 )
141
141
}
142
142
143
- @available ( macOS 12 . 0 , iOS 15 . 0 , watchOS 8 . 0 , tvOS 15 . 0 , * )
143
+ @available ( SwiftStdlib 5 . 5 , * )
144
144
func bar( _ f: ( Int ) async -> Int ) async -> Int {
145
145
return await f ( 2 )
146
146
}
147
147
148
- @available ( macOS 12 . 0 , iOS 15 . 0 , watchOS 8 . 0 , tvOS 15 . 0 , * )
148
+ @available ( SwiftStdlib 5 . 5 , * )
149
149
func incrementSync( _ x: Int ) -> Int {
150
150
return x + 1
151
151
}
152
152
153
- @available ( macOS 12 . 0 , iOS 15 . 0 , watchOS 8 . 0 , tvOS 15 . 0 , * )
153
+ @available ( SwiftStdlib 5 . 5 , * )
154
154
func incrementAsync( _ x: Int ) async -> Int {
155
155
return x + 1
156
156
}
157
157
158
- @available ( macOS 12 . 0 , iOS 15 . 0 , watchOS 8 . 0 , tvOS 15 . 0 , * )
158
+ @available ( SwiftStdlib 5 . 5 , * )
159
159
func testAsyncWithConversions( ) async {
160
160
_ = bar ( incrementSync)
161
161
_ = bar { - $0 }
0 commit comments