@@ -8,7 +8,7 @@ import gizmo
8
8
import ansible
9
9
10
10
class Hoozit : Gizmo {
11
- @ objc func typical( _ x: Int , y: Gizmo ) -> Gizmo { return y }
11
+ func typical( _ x: Int , y: Gizmo ) -> Gizmo { return y }
12
12
// CHECK-LABEL: sil hidden [thunk] [ossa] @$s11objc_thunks6HoozitC7typical_1ySo5GizmoCSi_AGtFTo : $@convention(objc_method) (Int, Gizmo, Hoozit) -> @autoreleased Gizmo {
13
13
// CHECK: bb0([[X:%.*]] : $Int, [[Y:%.*]] : @unowned $Gizmo, [[THIS:%.*]] : @unowned $Hoozit):
14
14
// CHECK-NEXT: [[Y_COPY:%.*]] = copy_value [[Y]]
@@ -17,12 +17,12 @@ class Hoozit : Gizmo {
17
17
// CHECK-NEXT: [[BORROWED_THIS_COPY:%.*]] = begin_borrow [[THIS_COPY]]
18
18
// CHECK-NEXT: // function_ref objc_thunks.Hoozit.typical
19
19
// CHECK-NEXT: [[NATIVE:%.*]] = function_ref @$s11objc_thunks6HoozitC7typical_1ySo5GizmoCSi_AGtF : $@convention(method) (Int, @guaranteed Gizmo, @guaranteed Hoozit) -> @owned Gizmo
20
- // CHECK-NEXT: [[RES:%.*]] = apply [[NATIVE]]([[X]], [[BORROWED_Y_COPY]], [[BORROWED_THIS_COPY]]) {{.*}} line:[[@LINE-9]]:14 :auto_gen
20
+ // CHECK-NEXT: [[RES:%.*]] = apply [[NATIVE]]([[X]], [[BORROWED_Y_COPY]], [[BORROWED_THIS_COPY]]) {{.*}} line:[[@LINE-9]]:8 :auto_gen
21
21
// CHECK-NEXT: end_borrow [[BORROWED_THIS_COPY]]
22
22
// CHECK-NEXT: end_borrow [[BORROWED_Y_COPY]]
23
23
// CHECK-NEXT: destroy_value [[THIS_COPY]] : $Hoozit
24
24
// CHECK-NEXT: destroy_value [[Y_COPY]]
25
- // CHECK-NEXT: return [[RES]] : $Gizmo{{.*}} line:[[@LINE-14]]:14 :auto_gen
25
+ // CHECK-NEXT: return [[RES]] : $Gizmo{{.*}} line:[[@LINE-14]]:8 :auto_gen
26
26
// CHECK-NEXT: } // end sil function '$s11objc_thunks6HoozitC7typical_1ySo5GizmoCSi_AGtFTo'
27
27
28
28
// NS_CONSUMES_SELF by inheritance
@@ -52,7 +52,7 @@ class Hoozit : Gizmo {
52
52
// CHECK-NEXT: }
53
53
54
54
// NS_RETURNS_RETAINED by family (-copy)
55
- @ objc func copyFoo( ) -> Gizmo { return self }
55
+ func copyFoo( ) -> Gizmo { return self }
56
56
// CHECK-LABEL: sil hidden [thunk] [ossa] @$s11objc_thunks6HoozitC7copyFooSo5GizmoCyFTo : $@convention(objc_method) (Hoozit) -> @owned Gizmo
57
57
// CHECK: bb0([[THIS:%.*]] : @unowned $Hoozit):
58
58
// CHECK-NEXT: [[THIS_COPY:%.*]] = copy_value [[THIS]]
@@ -66,7 +66,7 @@ class Hoozit : Gizmo {
66
66
// CHECK-NEXT: }
67
67
68
68
// NS_RETURNS_RETAINED by family (-mutableCopy)
69
- @ objc func mutableCopyFoo( ) -> Gizmo { return self }
69
+ func mutableCopyFoo( ) -> Gizmo { return self }
70
70
// CHECK-LABEL: sil hidden [thunk] [ossa] @$s11objc_thunks6HoozitC14mutableCopyFooSo5GizmoCyFTo : $@convention(objc_method) (Hoozit) -> @owned Gizmo
71
71
// CHECK: bb0([[THIS:%.*]] : @unowned $Hoozit):
72
72
// CHECK-NEXT: [[THIS_COPY:%.*]] = copy_value [[THIS]]
@@ -82,7 +82,7 @@ class Hoozit : Gizmo {
82
82
// NS_RETURNS_RETAINED by family (-copy). This is different from Swift's
83
83
// normal notion of CamelCase, but it's what Clang does, so we should match
84
84
// it.
85
- @ objc func copy8( ) -> Gizmo { return self }
85
+ func copy8( ) -> Gizmo { return self }
86
86
// CHECK-LABEL: sil hidden [thunk] [ossa] @$s11objc_thunks6HoozitC5copy8So5GizmoCyFTo : $@convention(objc_method) (Hoozit) -> @owned Gizmo
87
87
// CHECK: bb0([[THIS:%.*]] : @unowned $Hoozit):
88
88
// CHECK-NEXT: [[THIS_COPY:%.*]] = copy_value [[THIS]]
@@ -96,7 +96,7 @@ class Hoozit : Gizmo {
96
96
// CHECK-NEXT: }
97
97
98
98
// NS_RETURNS_RETAINED by family (-copy)
99
- @ objc ( copyDuplicate ) func makeDuplicate( ) -> Gizmo { return self }
99
+ func makeDuplicate( ) -> Gizmo { return self }
100
100
// CHECK-LABEL: sil hidden [thunk] [ossa] @$s11objc_thunks6HoozitC13makeDuplicateSo5GizmoCyFTo : $@convention(objc_method) (Hoozit) -> @owned Gizmo
101
101
// CHECK: bb0([[THIS:%.*]] : @unowned $Hoozit):
102
102
// CHECK-NEXT: [[THIS_COPY:%.*]] = copy_value [[THIS]]
@@ -111,7 +111,7 @@ class Hoozit : Gizmo {
111
111
112
112
// Override the normal family conventions to make this non-consuming and
113
113
// returning at +0.
114
- @ objc func initFoo( ) -> Gizmo { return self }
114
+ func initFoo( ) -> Gizmo { return self }
115
115
// CHECK-LABEL: sil hidden [thunk] [ossa] @$s11objc_thunks6HoozitC7initFooSo5GizmoCyFTo : $@convention(objc_method) (Hoozit) -> @autoreleased Gizmo
116
116
// CHECK: bb0([[THIS:%.*]] : @unowned $Hoozit):
117
117
// CHECK-NEXT: [[THIS_COPY:%.*]] = copy_value [[THIS]]
@@ -124,7 +124,7 @@ class Hoozit : Gizmo {
124
124
// CHECK-NEXT: return [[RES]]
125
125
// CHECK-NEXT: }
126
126
127
- @ objc var typicalProperty : Gizmo
127
+ var typicalProperty : Gizmo
128
128
// -- getter
129
129
// CHECK-LABEL: sil hidden [thunk] [ossa] @$s11objc_thunks6HoozitC15typicalPropertySo5GizmoCvgTo : $@convention(objc_method) (Hoozit) -> @autoreleased Gizmo {
130
130
// CHECK: bb0([[SELF:%.*]] : @unowned $Hoozit):
@@ -158,7 +158,7 @@ class Hoozit : Gizmo {
158
158
// CHECK: [[RES:%.*]] = apply [[FR]]([[VALUE_COPY]], [[BORROWED_THIS_COPY]])
159
159
// CHECK: end_borrow [[BORROWED_THIS_COPY]]
160
160
// CHECK: destroy_value [[THIS_COPY]]
161
- // CHECK: return [[RES]] : $(), loc {{.*}}, scope {{.*}} // id: {{.*}} line:[[@LINE-34]]:13 :auto_gen
161
+ // CHECK: return [[RES]] : $(), loc {{.*}}, scope {{.*}} // id: {{.*}} line:[[@LINE-34]]:7 :auto_gen
162
162
// CHECK: } // end sil function '$s11objc_thunks6HoozitC15typicalPropertySo5GizmoCvsTo'
163
163
164
164
// CHECK-LABEL: sil hidden [ossa] @$s11objc_thunks6HoozitC15typicalPropertySo5GizmoCvs
@@ -174,7 +174,7 @@ class Hoozit : Gizmo {
174
174
// CHECK: } // end sil function '$s11objc_thunks6HoozitC15typicalPropertySo5GizmoCvs'
175
175
176
176
// NS_RETURNS_RETAINED getter by family (-copy)
177
- @ objc var copyProperty : Gizmo
177
+ var copyProperty : Gizmo
178
178
// -- getter
179
179
// CHECK-LABEL: sil hidden [thunk] [ossa] @$s11objc_thunks6HoozitC12copyPropertySo5GizmoCvgTo : $@convention(objc_method) (Hoozit) -> @owned Gizmo {
180
180
// CHECK: bb0([[SELF:%.*]] : @unowned $Hoozit):
@@ -221,7 +221,7 @@ class Hoozit : Gizmo {
221
221
// CHECK: destroy_value [[ARG1]]
222
222
// CHECK: } // end sil function '$s11objc_thunks6HoozitC12copyPropertySo5GizmoCvs'
223
223
224
- @ objc var roProperty : Gizmo { return self }
224
+ var roProperty : Gizmo { return self }
225
225
// -- getter
226
226
// CHECK-LABEL: sil hidden [thunk] [ossa] @$s11objc_thunks6HoozitC10roPropertySo5GizmoCvgTo : $@convention(objc_method) (Hoozit) -> @autoreleased Gizmo {
227
227
// CHECK: bb0([[THIS:%.*]] : @unowned $Hoozit):
@@ -238,7 +238,7 @@ class Hoozit : Gizmo {
238
238
// -- no setter
239
239
// CHECK-NOT: sil hidden [thunk] [ossa] @$s11objc_thunks6HoozitC10roPropertySo5GizmoCvsTo
240
240
241
- @ objc var rwProperty : Gizmo {
241
+ var rwProperty : Gizmo {
242
242
get {
243
243
return self
244
244
}
@@ -261,7 +261,7 @@ class Hoozit : Gizmo {
261
261
// CHECK-NEXT: return
262
262
// CHECK-NEXT: }
263
263
264
- @ objc var copyRWProperty : Gizmo {
264
+ var copyRWProperty : Gizmo {
265
265
get {
266
266
return self
267
267
}
@@ -295,7 +295,7 @@ class Hoozit : Gizmo {
295
295
// CHECK-NEXT: return
296
296
// CHECK-NEXT: }
297
297
298
- @ objc var initProperty : Gizmo
298
+ var initProperty : Gizmo
299
299
// -- getter
300
300
// CHECK-LABEL: sil hidden [thunk] [ossa] @$s11objc_thunks6HoozitC12initPropertySo5GizmoCvgTo : $@convention(objc_method) (Hoozit) -> @autoreleased Gizmo {
301
301
// CHECK: bb0([[THIS:%.*]] : @unowned $Hoozit):
@@ -323,7 +323,8 @@ class Hoozit : Gizmo {
323
323
// CHECK-NEXT: return
324
324
// CHECK-NEXT: }
325
325
326
- @objc var propComputed : Gizmo {
326
+ var propComputed : Gizmo {
327
+ // FIXME: Add a way to specify these names in an access note.
327
328
@objc ( initPropComputedGetter) get { return self }
328
329
@objc ( initPropComputedSetter: ) set { }
329
330
}
@@ -378,7 +379,7 @@ class Hoozit : Gizmo {
378
379
}
379
380
380
381
// Subscript
381
- @ objc subscript ( i: Int ) -> Hoozit {
382
+ subscript ( i: Int ) -> Hoozit {
382
383
// Getter
383
384
// CHECK-LABEL: sil hidden [thunk] [ossa] @$s11objc_thunks6HoozitCyACSicigTo : $@convention(objc_method) (Int, Hoozit) -> @autoreleased Hoozit
384
385
// CHECK: bb0([[I:%[0-9]+]] : $Int, [[SELF:%[0-9]+]] : @unowned $Hoozit):
@@ -422,7 +423,7 @@ class Wotsit<T> : Gizmo {
422
423
// CHECK-NEXT: destroy_value [[SELF_COPY]] : $Wotsit<T>
423
424
// CHECK-NEXT: return [[RESULT]] : $()
424
425
// CHECK-NEXT: }
425
- @ objc func plain( ) { }
426
+ func plain( ) { }
426
427
427
428
func generic< U> ( _ x: U ) { }
428
429
@@ -468,7 +469,7 @@ class Wotsit<T> : Gizmo {
468
469
// Extension initializers, properties and methods need thunks too.
469
470
extension Hoozit {
470
471
// CHECK-LABEL: sil hidden [thunk] [ossa] @$s11objc_thunks6HoozitC3intACSi_tcfcTo : $@convention(objc_method) (Int, @owned Hoozit) -> @owned Hoozit
471
- @ objc dynamic convenience init ( int i: Int ) { self . init ( bellsOn: i) }
472
+ convenience init ( int i: Int ) { self . init ( bellsOn: i) }
472
473
473
474
// CHECK-LABEL: sil hidden [ossa] @$s11objc_thunks6HoozitC6doubleACSd_tcfC : $@convention(method) (Double, @thick Hoozit.Type) -> @owned Hoozit
474
475
convenience init ( double d: Double ) {
@@ -477,7 +478,7 @@ extension Hoozit {
477
478
other ( )
478
479
}
479
480
480
- @ objc func foof( ) { }
481
+ func foof( ) { }
481
482
// CHECK-LABEL: sil hidden [thunk] [ossa] @$s11objc_thunks6HoozitC4foofyyFTo : $@convention(objc_method) (Hoozit) -> () {
482
483
483
484
var extensionProperty : Int { return 0 }
@@ -536,7 +537,7 @@ class DesignatedStubs : Gizmo {
536
537
// CHECK-LABEL: sil hidden [ossa] @$s11objc_thunks15DesignatedStubsC7bellsOnACSgSi_tcfc
537
538
// CHECK: string_literal utf8 "objc_thunks.DesignatedStubs"
538
539
// CHECK: string_literal utf8 "init(bellsOn:)"
539
- // CHECK: string_literal utf8 "{{.*}}objc_thunks .swift"
540
+ // CHECK: string_literal utf8 "{{.*}}objc_access_notes .swift"
540
541
// CHECK: function_ref @$ss25_unimplementedInitializer9className04initD04file4line6columns5NeverOs12StaticStringV_A2JS2utF
541
542
// CHECK: return
542
543
0 commit comments