@@ -29,11 +29,11 @@ func testSymbols() {
29
29
30
30
// CHECK-IR-LABEL: define{{.*}} void @_T08typedefs18testVTableBuildingy3Lib4UserC4user_tF
31
31
public func testVTableBuilding( user: User ) {
32
- // The important thing in this CHECK line is the "i64 28 ", which is the offset
32
+ // The important thing in this CHECK line is the "i64 30 ", which is the offset
33
33
// for the vtable slot for 'lastMethod()'. If the layout here
34
- // changes, please check that offset 28 is still correct.
34
+ // changes, please check that offset is still correct.
35
35
// CHECK-IR-NOT: ret
36
- // CHECK-IR: getelementptr inbounds void (%T3Lib4UserC*)*, void (%T3Lib4UserC*)** %{{[0-9]+}}, {{i64 28 |i32 31 }}
36
+ // CHECK-IR: getelementptr inbounds void (%T3Lib4UserC*)*, void (%T3Lib4UserC*)** %{{[0-9]+}}, {{i64 30 |i32 33 }}
37
37
_ = user. lastMethod ( )
38
38
} // CHECK-IR: ret void
39
39
@@ -168,6 +168,18 @@ open class User {
168
168
// CHECK-RECOVERY: /* placeholder for init(wrappedRequired:) */
169
169
public required init ( wrappedRequired: WrappedInt ) { }
170
170
171
+ // CHECK: {{^}} init(wrappedRequiredInSub: WrappedInt)
172
+ // CHECK-RECOVERY: /* placeholder for init(wrappedRequiredInSub:) */
173
+ public init ( wrappedRequiredInSub: WrappedInt ) { }
174
+
175
+ // CHECK: dynamic init(wrappedDynamic: WrappedInt)
176
+ // CHECK-RECOVERY: /* placeholder for init(wrappedDynamic:) */
177
+ @objc public dynamic init ( wrappedDynamic: WrappedInt ) { }
178
+
179
+ // CHECK: dynamic required init(wrappedRequiredDynamic: WrappedInt)
180
+ // CHECK-RECOVERY: /* placeholder for init(wrappedRequiredDynamic:) */
181
+ @objc public dynamic required init ( wrappedRequiredDynamic: WrappedInt ) { }
182
+
171
183
public func lastMethod( ) { }
172
184
}
173
185
// CHECK: {{^}$}}
@@ -195,7 +207,9 @@ open class User {
195
207
// 25 CHECK-VTABLE-NEXT: #User.init!initializer.1:
196
208
// 26 CHECK-VTABLE-NEXT: #User.init!allocator.1:
197
209
// 27 CHECK-VTABLE-NEXT: #User.init!initializer.1:
198
- // 28 CHECK-VTABLE-NEXT: #User.lastMethod!1:
210
+ // 28 CHECK-VTABLE-NEXT: #User.init!initializer.1:
211
+ // 29 CHECK-VTABLE-NEXT: #User.init!allocator.1:
212
+ // 30 CHECK-VTABLE-NEXT: #User.lastMethod!1:
199
213
// CHECK-VTABLE: }
200
214
201
215
@@ -264,6 +278,14 @@ open class UserSub : User {
264
278
// CHECK: required init(wrappedRequired: WrappedInt?)
265
279
// CHECK-RECOVERY: /* placeholder for init(wrappedRequired:) */
266
280
public required init ( wrappedRequired: WrappedInt ? ) { super. init ( ) }
281
+
282
+ // CHECK: required init(wrappedRequiredInSub: WrappedInt?)
283
+ // CHECK-RECOVERY: /* placeholder for init(wrappedRequiredInSub:) */
284
+ public required override init ( wrappedRequiredInSub: WrappedInt ? ) { super. init ( ) }
285
+
286
+ // CHECK: required init(wrappedRequiredDynamic: WrappedInt)
287
+ // CHECK-RECOVERY: /* placeholder for init(wrappedRequiredDynamic:) */
288
+ public required init ( wrappedRequiredDynamic: WrappedInt ) { super. init ( ) }
267
289
}
268
290
// CHECK: {{^}$}}
269
291
// CHECK-RECOVERY: {{^}$}}
0 commit comments