11
11
//===----------------------------------------------------------------------===//
12
12
// RUN: %target-run-simple-swift
13
13
// REQUIRES: executable_test
14
- // REQUIRES: rdar24874073
15
14
//
16
15
17
16
import StdlibUnittest
@@ -84,20 +83,20 @@ func a1(s: AddrOnly?) -> AddrOnly {
84
83
}
85
84
86
85
FunctionConversionTestSuite . test ( " Optional " ) {
87
- let g11 : Trivial -> Trivial ? = t1
88
- let g12 : Trivial ! -> Trivial? = t1
86
+ let g11 : ( Trivial ) -> Trivial ? = t1
87
+ let g12 : ( Trivial ! ) -> Trivial ? = t1
89
88
90
89
expectEqual ( 22 , g11 ( Trivial ( n: 11 ) ) ? . n)
91
90
expectEqual ( 24 , g12 ( Trivial ( n: 12 ) ) ? . n)
92
91
93
- let g21 : Loadable ? -> Loadable ? = l1
94
- let g22 : Loadable ! -> Loadable? = l1
92
+ let g21 : ( Loadable ? ) -> Loadable ? = l1
93
+ let g22 : ( Loadable ! ) -> Loadable ? = l1
95
94
96
95
expectEqual ( 42 , g21 ( Loadable ( n: 21 ) ) ? . n)
97
96
expectEqual ( 44 , g22 ( Loadable ( n: 22 ) ) ? . n)
98
97
99
- let g31 : AddrOnly ? -> AddrOnly ? = a1
100
- let g32 : AddrOnly ! -> AddrOnly? = a1
98
+ let g31 : ( AddrOnly ? ) -> AddrOnly ? = a1
99
+ let g32 : ( AddrOnly ! ) -> AddrOnly ? = a1
101
100
102
101
expectEqual ( 62 , g31 ( AddrOnly ( n: 31 ) ) ? . n)
103
102
expectEqual ( 64 , g32 ( AddrOnly ( n: 32 ) ) ? . n)
@@ -128,25 +127,25 @@ func a3(s: Quilt?) -> AddrOnly {
128
127
}
129
128
130
129
FunctionConversionTestSuite . test ( " Existential " ) {
131
- let g11 : Trivial -> Patchwork = t2
132
- let g12 : Trivial ? -> Patchwork = t3
133
- let g13 : Patchwork -> Patchwork = t2
130
+ let g11 : ( Trivial ) -> Patchwork = t2
131
+ let g12 : ( Trivial ? ) -> Patchwork = t3
132
+ let g13 : ( Patchwork ) -> Patchwork = t2
134
133
135
134
expectEqual ( 11 , g11 ( Trivial ( n: 11 ) ) . n)
136
135
expectEqual ( 12 , g12 ( Trivial ( n: 12 ) ) . n)
137
136
expectEqual ( 13 , g13 ( Trivial ( n: 13 ) ) . n)
138
137
139
- let g21 : Loadable -> Patchwork = l2
140
- let g22 : Loadable ? -> Patchwork = l3
141
- let g23 : Patchwork -> Patchwork = l2
138
+ let g21 : ( Loadable ) -> Patchwork = l2
139
+ let g22 : ( Loadable ? ) -> Patchwork = l3
140
+ let g23 : ( Patchwork ) -> Patchwork = l2
142
141
143
142
expectEqual ( 21 , g21 ( Loadable ( n: 21 ) ) . n)
144
143
expectEqual ( 22 , g22 ( Loadable ( n: 22 ) ) . n)
145
144
expectEqual ( 23 , g23 ( Loadable ( n: 23 ) ) . n)
146
145
147
- let g31 : AddrOnly -> Patchwork = a2
148
- let g32 : AddrOnly -> Patchwork = a3
149
- let g33 : Patchwork -> Patchwork = a2
146
+ let g31 : ( AddrOnly ) -> Patchwork = a2
147
+ let g32 : ( AddrOnly ) -> Patchwork = a3
148
+ let g33 : ( Patchwork ) -> Patchwork = a2
150
149
151
150
expectEqual ( 31 , g31 ( AddrOnly ( n: 31 ) ) . n)
152
151
expectEqual ( 32 , g32 ( AddrOnly ( n: 32 ) ) . n)
@@ -158,10 +157,10 @@ func em(t: Quilt.Type?) -> Trivial.Type {
158
157
}
159
158
160
159
FunctionConversionTestSuite . test ( " ExistentialMetatype " ) {
161
- let g1 : Trivial . Type -> Patchwork . Type = em
162
- let g2 : Trivial . Type ? -> Patchwork . Type = em
163
- let g3 : Patchwork . Type -> Patchwork . Type = em
164
- let g4 : Patchwork . Type -> Any = em
160
+ let g1 : ( Trivial . Type ) -> Patchwork . Type = em
161
+ let g2 : ( Trivial . Type ? ) -> Patchwork . Type = em
162
+ let g3 : ( Patchwork . Type ) -> Patchwork . Type = em
163
+ let g4 : ( Patchwork . Type ) -> Any = em
165
164
166
165
let result1 = g1 ( Trivial . self)
167
166
let result2 = g2 ( Trivial . self)
@@ -183,8 +182,8 @@ func c2(p: Parent?) -> (Child, Trivial) {
183
182
}
184
183
185
184
FunctionConversionTestSuite . test ( " ClassUpcast " ) {
186
- let g1 : Child -> ( Parent , Trivial ? ) = c1
187
- let g2 : Child -> ( Parent ? , Trivial ? ) = c2
185
+ let g1 : ( Child ) -> ( Parent , Trivial ? ) = c1
186
+ let g2 : ( Child ) -> ( Parent ? , Trivial ? ) = c2
188
187
189
188
expectEqual ( g1 ( Child ( n: 2 ) ) . 0 . n, 2 )
190
189
expectEqual ( g2 ( Child ( n: 4 ) ) . 0 !. n, 4 )
@@ -199,9 +198,9 @@ func cm2(p: Parent.Type?) -> (Child.Type, Trivial) {
199
198
}
200
199
201
200
FunctionConversionTestSuite . test ( " ClassMetatypeUpcast " ) {
202
- let g1 : Child . Type -> ( Parent . Type , Trivial ? ) = cm1
203
- let g2 : Child . Type -> ( Parent . Type , Trivial ? ) = cm2
204
- let g3 : Child . Type ? -> ( Parent . Type ? , Trivial ? ) = cm2
201
+ let g1 : ( Child . Type ) -> ( Parent . Type , Trivial ? ) = cm1
202
+ let g2 : ( Child . Type ) -> ( Parent . Type , Trivial ? ) = cm2
203
+ let g3 : ( Child . Type ? ) -> ( Parent . Type ? , Trivial ? ) = cm2
205
204
206
205
let result1 = g1 ( Child . self)
207
206
let result2 = g2 ( Child . self)
@@ -216,26 +215,26 @@ func sq(i: Int) -> Int {
216
215
return i * i
217
216
}
218
217
219
- func f1( f: Any ) -> Int -> Int {
220
- return f as! ( Int -> Int )
218
+ func f1( f: Any ) -> ( Int ) -> Int {
219
+ return f as! ( ( Int ) -> Int )
221
220
}
222
221
223
222
FunctionConversionTestSuite . test ( " FuncExistential " ) {
224
- let g11 : ( Int -> Int ) -> Any = f1
223
+ let g11 : ( ( Int ) -> Int ) -> Any = f1
225
224
226
- expectEqual ( 100 , f1 ( g11 ( sq) ) ( 10 ) )
225
+ expectEqual ( 100 , f1 ( f : g11 ( sq) ) ( 10 ) )
227
226
}
228
227
229
228
func generic1< T> ( t: Parent ) -> ( T , Trivial ) {
230
229
return ( t as! T , Trivial ( n: 0 ) )
231
230
}
232
231
233
- func generic2< T : Parent > ( f: Parent -> ( T , Trivial ) , t: T ) -> Child -> ( Parent , Trivial ? ) {
232
+ func generic2< T : Parent > ( f: ( Parent ) -> ( T , Trivial ) , t: T ) -> ( Child ) -> ( Parent , Trivial ? ) {
234
233
return f
235
234
}
236
235
237
236
FunctionConversionTestSuite . test ( " ClassArchetypeUpcast " ) {
238
- let g11 : Child -> ( Parent , Trivial ? ) = generic2 ( generic1, t: Child ( n: 10 ) )
237
+ let g11 : ( Child ) -> ( Parent , Trivial ? ) = generic2 ( f : generic1, t: Child ( n: 10 ) )
239
238
expectEqual ( 10 , g11 ( Child ( n: 10 ) ) . 0 . n)
240
239
}
241
240
0 commit comments