8
8
// CHECK: [[THUNK:%.*]] = function_ref @_TTRXFtCc_dSi_dSi_XFo_dSi_dSi_
9
9
// CHECK: [[FUNC:%.*]] = partial_apply [[THUNK]](%0)
10
10
// CHECK: return [[FUNC]]
11
- func cToFunc( _ arg: @convention ( c) Int -> Int ) -> Int -> Int {
11
+ func cToFunc( _ arg: @convention ( c) ( Int ) -> Int ) -> ( Int ) -> Int {
12
12
return arg
13
13
}
14
14
@@ -17,7 +17,7 @@ func cToFunc(_ arg: @convention(c) Int -> Int) -> Int -> Int {
17
17
// CHECK: [[BLOCK:%.*]] = init_block_storage_header [[BLOCK_STORAGE]]
18
18
// CHECK: [[COPY:%.*]] = copy_block [[BLOCK]] : $@convention(block) (Int) -> Int
19
19
// CHECK: return [[COPY]]
20
- func cToBlock( _ arg: @convention ( c) Int -> Int ) -> @convention ( block) Int -> Int {
20
+ func cToBlock( _ arg: @convention ( c) ( Int ) -> Int ) -> @convention ( block) ( Int ) -> Int {
21
21
return arg
22
22
}
23
23
@@ -61,7 +61,7 @@ func funcToUpcast(_ x: () -> Domesticated) -> () -> Feral {
61
61
// CHECK-LABEL: sil hidden @_TF19function_conversion12funcToUpcastFFCS_5FeralT_FCS_12DomesticatedT_ : $@convention(thin) (@owned @callee_owned (@owned Feral) -> ()) -> @owned @callee_owned (@owned Domesticated) -> ()
62
62
// CHECK: [[FUNC:%.*]] = convert_function %0 : $@callee_owned (@owned Feral) -> () to $@callee_owned (@owned Domesticated) -> (){{.*}} // user: %3
63
63
// CHECK: return [[FUNC]]
64
- func funcToUpcast( _ x: Feral -> ( ) ) -> Domesticated -> ( ) {
64
+ func funcToUpcast( _ x: ( Feral ) -> ( ) ) -> ( Domesticated ) -> ( ) {
65
65
return x
66
66
}
67
67
@@ -104,14 +104,14 @@ struct AddrOnly {
104
104
}
105
105
106
106
// CHECK-LABEL: sil hidden @_TF19function_conversion19convOptionalTrivialFFGSqVS_7Trivial_S0_T_
107
- func convOptionalTrivial( _ t1: Trivial ? -> Trivial ) {
107
+ func convOptionalTrivial( _ t1: ( Trivial ? ) -> Trivial ) {
108
108
// CHECK: function_ref @_TTRXFo_dGSqV19function_conversion7Trivial__dS0__XFo_dS0__dGSqS0___
109
109
// CHECK: partial_apply
110
- let _: Trivial -> Trivial ? = t1
110
+ let _: ( Trivial ) -> Trivial ? = t1
111
111
112
112
// CHECK: function_ref @_TTRXFo_dGSqV19function_conversion7Trivial__dS0__XFo_dGSQS0___dGSqS0___
113
113
// CHECK: partial_apply
114
- let _: Trivial ! -> Trivial? = t1
114
+ let _: ( Trivial ! ) -> Trivial ? = t1
115
115
}
116
116
117
117
// CHECK-LABEL: sil shared [transparent] [reabstraction_thunk] @_TTRXFo_dGSqV19function_conversion7Trivial__dS0__XFo_dS0__dGSqS0___ : $@convention(thin) (Trivial, @owned @callee_owned (Optional<Trivial>) -> Trivial) -> Optional<Trivial>
@@ -127,14 +127,14 @@ func convOptionalTrivial(_ t1: Trivial? -> Trivial) {
127
127
// CHECK-NEXT: return
128
128
129
129
// CHECK-LABEL: sil hidden @_TF19function_conversion20convOptionalLoadableFFGSqVS_8Loadable_S0_T_
130
- func convOptionalLoadable( _ l1: Loadable ? -> Loadable ) {
130
+ func convOptionalLoadable( _ l1: ( Loadable ? ) -> Loadable ) {
131
131
// CHECK: function_ref @_TTRXFo_oGSqV19function_conversion8Loadable__oS0__XFo_oS0__oGSqS0___
132
132
// CHECK: partial_apply
133
- let _: Loadable -> Loadable ? = l1
133
+ let _: ( Loadable ) -> Loadable ? = l1
134
134
135
135
// CHECK: function_ref @_TTRXFo_oGSqV19function_conversion8Loadable__oS0__XFo_oGSQS0___oGSqS0___
136
136
// CHECK: partial_apply
137
- let _: Loadable ! -> Loadable? = l1
137
+ let _: ( Loadable ! ) -> Loadable ? = l1
138
138
}
139
139
140
140
// CHECK-LABEL: sil shared [transparent] [reabstraction_thunk] @_TTRXFo_oGSqV19function_conversion8Loadable__oS0__XFo_oGSQS0___oGSqS0___ : $@convention(thin) (@owned ImplicitlyUnwrappedOptional<Loadable>, @owned @callee_owned (@owned Optional<Loadable>) -> @owned Loadable) -> @owned Optional<Loadable>
@@ -144,14 +144,14 @@ func convOptionalLoadable(_ l1: Loadable? -> Loadable) {
144
144
// CHECK-NEXT: return
145
145
146
146
// CHECK-LABEL: sil hidden @_TF19function_conversion20convOptionalAddrOnlyFFGSqVS_8AddrOnly_S0_T_
147
- func convOptionalAddrOnly( _ a1: AddrOnly ? -> AddrOnly ) {
147
+ func convOptionalAddrOnly( _ a1: ( AddrOnly ? ) -> AddrOnly ) {
148
148
// CHECK: function_ref @_TTRXFo_iGSqV19function_conversion8AddrOnly__iS0__XFo_iGSqS0___iGSqS0___
149
149
// CHECK: partial_apply
150
- let _: AddrOnly ? -> AddrOnly ? = a1
150
+ let _: ( AddrOnly ? ) -> AddrOnly ? = a1
151
151
152
152
// CHECK: function_ref @_TTRXFo_iGSqV19function_conversion8AddrOnly__iS0__XFo_iGSQS0___iGSqS0___
153
153
// CHECK: partial_apply
154
- let _: AddrOnly ! -> AddrOnly? = a1
154
+ let _: ( AddrOnly ! ) -> AddrOnly ? = a1
155
155
}
156
156
157
157
// CHECK-LABEL: sil shared [transparent] [reabstraction_thunk] @_TTRXFo_iGSqV19function_conversion8AddrOnly__iS0__XFo_iGSqS0___iGSqS0___ : $@convention(thin) (@in Optional<AddrOnly>, @owned @callee_owned (@in Optional<AddrOnly>) -> @out AddrOnly) -> @out Optional<AddrOnly>
@@ -191,18 +191,18 @@ extension Loadable : P {}
191
191
extension AddrOnly : P { }
192
192
193
193
// CHECK-LABEL: sil hidden @_TF19function_conversion22convExistentialTrivialFTFPS_1Q_VS_7Trivial2t3FGSqPS0___S1__T_
194
- func convExistentialTrivial( _ t2: Q -> Trivial , t3: Q ? -> Trivial ) {
194
+ func convExistentialTrivial( _ t2: ( Q ) -> Trivial , t3: ( Q ? ) -> Trivial ) {
195
195
// CHECK: function_ref @_TTRXFo_iP19function_conversion1Q__dVS_7Trivial_XFo_dS1__iPS_1P__
196
196
// CHECK: partial_apply
197
- let _: Trivial -> P = t2
197
+ let _: ( Trivial ) -> P = t2
198
198
199
199
// CHECK: function_ref @_TTRXFo_iGSqP19function_conversion1Q___dVS_7Trivial_XFo_dGSqS1___iPS_1P__
200
200
// CHECK: partial_apply
201
- let _: Trivial ? -> P = t3
201
+ let _: ( Trivial ? ) -> P = t3
202
202
203
203
// CHECK: function_ref @_TTRXFo_iP19function_conversion1Q__dVS_7Trivial_XFo_iPS_1P__iPS2___
204
204
// CHECK: partial_apply
205
- let _: P -> P = t2
205
+ let _: ( P ) -> P = t2
206
206
}
207
207
208
208
// CHECK-LABEL: sil shared [transparent] [reabstraction_thunk] @_TTRXFo_iP19function_conversion1Q__dVS_7Trivial_XFo_dS1__iPS_1P__ : $@convention(thin) (Trivial, @owned @callee_owned (@in Q) -> Trivial) -> @out P
@@ -245,18 +245,18 @@ func convExistentialTrivial(_ t2: Q -> Trivial, t3: Q? -> Trivial) {
245
245
// ==== Existential metatypes
246
246
247
247
// CHECK-LABEL: sil hidden @_TF19function_conversion23convExistentialMetatypeFFGSqPMPS_1Q__MVS_7TrivialT_
248
- func convExistentialMetatype( _ em: Q . Type ? -> Trivial . Type ) {
248
+ func convExistentialMetatype( _ em: ( Q . Type ? ) -> Trivial . Type ) {
249
249
// CHECK: function_ref @_TTRXFo_dGSqPMP19function_conversion1Q___dXMtVS_7Trivial_XFo_dXMtS1__dXPMTPS_1P__
250
250
// CHECK: partial_apply
251
- let _: Trivial . Type -> P . Type = em
251
+ let _: ( Trivial . Type ) -> P . Type = em
252
252
253
253
// CHECK: function_ref @_TTRXFo_dGSqPMP19function_conversion1Q___dXMtVS_7Trivial_XFo_dGSqMS1___dXPMTPS_1P__
254
254
// CHECK: partial_apply
255
- let _: Trivial . Type ? -> P . Type = em
255
+ let _: ( Trivial . Type ? ) -> P . Type = em
256
256
257
257
// CHECK: function_ref @_TTRXFo_dGSqPMP19function_conversion1Q___dXMtVS_7Trivial_XFo_dXPMTPS_1P__dXPMTPS2___
258
258
// CHECK: partial_apply
259
- let _: P . Type -> P . Type = em
259
+ let _: ( P . Type ) -> P . Type = em
260
260
}
261
261
262
262
// CHECK-LABEL: sil shared [transparent] [reabstraction_thunk] @_TTRXFo_dGSqPMP19function_conversion1Q___dXMtVS_7Trivial_XFo_dXMtS1__dXPMTPS_1P__ : $@convention(thin) (@thin Trivial.Type, @owned @callee_owned (Optional<Q.Type>) -> @thin Trivial.Type) -> @thick P.Type
@@ -341,10 +341,10 @@ func convUpcastMetatype(_ c4: (Parent.Type, Trivial?) -> Child.Type,
341
341
// ==== Function to existential -- make sure we maximally abstract it
342
342
343
343
// CHECK-LABEL: sil hidden @_TF19function_conversion19convFuncExistentialFFP_FSiSiT_ : $@convention(thin) (@owned @callee_owned (@in protocol<>) -> @owned @callee_owned (Int) -> Int) -> ()
344
- func convFuncExistential( _ f1: Any -> Int -> Int ) {
344
+ func convFuncExistential( _ f1: ( Any ) -> ( Int ) -> Int ) {
345
345
// CHECK: function_ref @_TTRXFo_iP__oXFo_dSi_dSi__XFo_oXFo_dSi_dSi__iP__
346
346
// CHECK: partial_apply %3(%0)
347
- let _: ( Int -> Int ) -> Any = f1
347
+ let _: ( ( Int ) -> Int ) -> Any = f1
348
348
}
349
349
350
350
// CHECK-LABEL: sil shared [transparent] [reabstraction_thunk] @_TTRXFo_iP__oXFo_dSi_dSi__XFo_oXFo_dSi_dSi__iP__ : $@convention(thin) (@owned @callee_owned (Int) -> Int, @owned @callee_owned (@in protocol<>) -> @owned @callee_owned (Int) -> Int) -> @out protocol<>
@@ -369,10 +369,10 @@ func convFuncExistential(_ f1: Any -> Int -> Int) {
369
369
// ==== Class-bound archetype upcast
370
370
371
371
// CHECK-LABEL: sil hidden @_TF19function_conversion29convClassBoundArchetypeUpcast
372
- func convClassBoundArchetypeUpcast< T : Parent > ( _ f1: Parent -> ( T , Trivial ) ) {
372
+ func convClassBoundArchetypeUpcast< T : Parent > ( _ f1: ( Parent ) -> ( T , Trivial ) ) {
373
373
// CHECK: function_ref @_TTRGRxC19function_conversion6ParentrXFo_oS0__oxdVS_7Trivial_XFo_ox_oS0_dGSqS1___
374
374
// CHECK: partial_apply
375
- let _: T -> ( Parent , Trivial ? ) = f1
375
+ let _: ( T ) -> ( Parent , Trivial ? ) = f1
376
376
}
377
377
378
378
// CHECK-LABEL: sil shared [transparent] [reabstraction_thunk] @_TTRGRxC19function_conversion6ParentrXFo_oS0__oxdVS_7Trivial_XFo_ox_oS0_dGSqS1___ : $@convention(thin) <T where T : Parent> (@owned T, @owned @callee_owned (@owned Parent) -> (@owned T, Trivial)) -> (@owned Parent, Optional<Trivial>)
@@ -386,10 +386,10 @@ func convClassBoundArchetypeUpcast<T : Parent>(_ f1: Parent -> (T, Trivial)) {
386
386
// CHECK-NEXT: return
387
387
388
388
// CHECK-LABEL: sil hidden @_TF19function_conversion37convClassBoundMetatypeArchetypeUpcast
389
- func convClassBoundMetatypeArchetypeUpcast< T : Parent > ( _ f1: Parent . Type -> ( T . Type , Trivial ) ) {
389
+ func convClassBoundMetatypeArchetypeUpcast< T : Parent > ( _ f1: ( Parent . Type ) -> ( T . Type , Trivial ) ) {
390
390
// CHECK: function_ref @_TTRGRxC19function_conversion6ParentrXFo_dXMTS0__dXMTxdVS_7Trivial_XFo_dXMTx_dXMTS0_dGSqS1___
391
391
// CHECK: partial_apply
392
- let _: T . Type -> ( Parent . Type , Trivial ? ) = f1
392
+ let _: ( T . Type ) -> ( Parent . Type , Trivial ? ) = f1
393
393
}
394
394
395
395
// CHECK-LABEL: sil shared [transparent] [reabstraction_thunk] @_TTRGRxC19function_conversion6ParentrXFo_dXMTS0__dXMTxdVS_7Trivial_XFo_dXMTx_dXMTS0_dGSqS1___ : $@convention(thin) <T where T : Parent> (@thick T.Type, @owned @callee_owned (@thick Parent.Type) -> (@thick T.Type, Trivial)) -> (@thick Parent.Type, Optional<Trivial>)
@@ -413,11 +413,11 @@ func convClassBoundMetatypeArchetypeUpcast<T : Parent>(_ f1: Parent.Type -> (T.T
413
413
414
414
// CHECK-LABEL: sil shared [transparent] [reabstraction_thunk] @_TTRXFo_dGSqTSiSi____XFo_dSidSi__ : $@convention(thin) (Int, Int, @owned @callee_owned (Optional<(Int, Int)>) -> ()) -> ()
415
415
416
- func convTupleScalar( _ f1: Q -> ( ) ,
416
+ func convTupleScalar( _ f1: ( Q ) -> ( ) ,
417
417
f2: ( parent: Q ) -> ( ) ,
418
418
f3: ( tuple: ( Int , Int ) ? ) -> ( ) ) {
419
419
let _: ( parent: P ) -> ( ) = f1
420
- let _: P -> ( ) = f2
420
+ let _: ( P ) -> ( ) = f2
421
421
let _: ( Int , Int ) -> ( ) = f3
422
422
}
423
423
0 commit comments