@@ -100,12 +100,13 @@ allocObjectImpl.pointee = {
100
100
101
101
/// Checks that `op` performs `base` allocations of Base and `sub` allocations
102
102
/// of Sub.
103
+ @inline ( never)
103
104
func check( base: Int = 0 , sub: Int = 0 ,
104
105
file: StaticString = #file, line: UInt = #line,
105
- op: ( ) -> Void ) {
106
+ op: ( ) -> AnyObject ) {
106
107
baseCounter = 0
107
108
subCounter = 0
108
- op ( )
109
+ _ = op ( )
109
110
precondition ( baseCounter == base,
110
111
" expected \( base) Base instances, got \( baseCounter) " ,
111
112
file: file, line: line)
@@ -114,48 +115,49 @@ func check(base: Int = 0, sub: Int = 0,
114
115
file: file, line: line)
115
116
}
116
117
118
+
117
119
// CHECK: START
118
120
print ( " START " )
119
121
120
122
// Check that this whole setup works.
121
123
// CHECK-NEXT: init(swift:) Base
122
- check ( base: 1 ) { _ = Base ( swift: ( ) ) }
124
+ check ( base: 1 ) { Base ( swift: ( ) ) }
123
125
// CHECK-NEXT: init(swift:) Sub
124
- check ( sub: 1 ) { _ = Sub ( swift: ( ) ) }
126
+ check ( sub: 1 ) { Sub ( swift: ( ) ) }
125
127
// CHECK-NEXT: init(objc:) Base
126
- check ( base: 1 ) { _ = Base ( objc: ( ) ) }
128
+ check ( base: 1 ) { Base ( objc: ( ) ) }
127
129
// CHECK-NEXT: init(objc:) Sub
128
- check ( sub: 1 ) { _ = Sub ( objc: ( ) ) }
130
+ check ( sub: 1 ) { Sub ( objc: ( ) ) }
129
131
130
132
// CHECK-NEXT: init(swiftToSwift:) Sub
131
133
// CHECK-NEXT: init(swift:) Sub
132
- check ( sub: 1 ) { _ = Sub ( swiftToSwift: ( ) ) }
134
+ check ( sub: 1 ) { Sub ( swiftToSwift: ( ) ) }
133
135
// CHECK-NEXT: init(objcToSwift:) Sub
134
136
// CHECK-NEXT: init(swift:) Sub
135
- check ( sub: 2 ) { _ = Sub ( objcToSwift: ( ) ) }
137
+ check ( sub: 2 ) { Sub ( objcToSwift: ( ) ) }
136
138
// CHECK-NEXT: init(swiftToObjC:) Sub
137
139
// CHECK-NEXT: init(objc:) Sub
138
- check ( sub: 1 ) { _ = Sub ( swiftToObjC: ( ) ) }
140
+ check ( sub: 1 ) { Sub ( swiftToObjC: ( ) ) }
139
141
// CHECK-NEXT: init(objcToObjC:) Sub
140
142
// CHECK-NEXT: init(objc:) Sub
141
- check ( sub: 1 ) { _ = Sub ( objcToObjC: ( ) ) }
143
+ check ( sub: 1 ) { Sub ( objcToObjC: ( ) ) }
142
144
143
145
// CHECK-NEXT: init(swiftToSwiftConvenience:) Sub
144
146
// CHECK-NEXT: init(swiftToSwift:) Sub
145
147
// CHECK-NEXT: init(swift:) Sub
146
- check ( sub: 1 ) { _ = Sub ( swiftToSwiftConvenience: ( ) ) }
148
+ check ( sub: 1 ) { Sub ( swiftToSwiftConvenience: ( ) ) }
147
149
// CHECK-NEXT: init(objcToSwiftConvenience:) Sub
148
150
// CHECK-NEXT: init(swiftToSwift:) Sub
149
151
// CHECK-NEXT: init(swift:) Sub
150
- check ( sub: 2 ) { _ = Sub ( objcToSwiftConvenience: ( ) ) }
152
+ check ( sub: 2 ) { Sub ( objcToSwiftConvenience: ( ) ) }
151
153
// CHECK-NEXT: init(swiftToObjCConvenience:) Sub
152
154
// CHECK-NEXT: init(objcToObjC:) Sub
153
155
// CHECK-NEXT: init(objc:) Sub
154
- check ( sub: 1 ) { _ = Sub ( swiftToObjCConvenience: ( ) ) }
156
+ check ( sub: 1 ) { Sub ( swiftToObjCConvenience: ( ) ) }
155
157
// CHECK-NEXT: init(objcToObjCConvenience:) Sub
156
158
// CHECK-NEXT: init(objcToObjC:) Sub
157
159
// CHECK-NEXT: init(objc:) Sub
158
- check ( sub: 1 ) { _ = Sub ( objcToObjCConvenience: ( ) ) }
160
+ check ( sub: 1 ) { Sub ( objcToObjCConvenience: ( ) ) }
159
161
160
162
// Force ObjC dispatch without conforming Sub or Base to the protocol,
161
163
// because it's possible that `required` perturbs things and we want to test
@@ -164,21 +166,21 @@ let SubAsObjC = unsafeBitCast(Sub.self as AnyObject,
164
166
to: ForceObjCDispatch . Type. self)
165
167
166
168
// CHECK-NEXT: init(objc:) Sub
167
- check ( sub: 1 ) { _ = SubAsObjC . init ( objc: ( ) ) }
169
+ check ( sub: 1 ) { SubAsObjC . init ( objc: ( ) ) }
168
170
// CHECK-NEXT: init(objcToSwift:) Sub
169
171
// CHECK-NEXT: init(swift:) Sub
170
- check ( sub: 2 ) { _ = SubAsObjC . init ( objcToSwift: ( ) ) }
172
+ check ( sub: 2 ) { SubAsObjC . init ( objcToSwift: ( ) ) }
171
173
// CHECK-NEXT: init(objcToObjC:) Sub
172
174
// CHECK-NEXT: init(objc:) Sub
173
- check ( sub: 1 ) { _ = SubAsObjC . init ( objcToObjC: ( ) ) }
175
+ check ( sub: 1 ) { SubAsObjC . init ( objcToObjC: ( ) ) }
174
176
// CHECK-NEXT: init(objcToSwiftConvenience:) Sub
175
177
// CHECK-NEXT: init(swiftToSwift:) Sub
176
178
// CHECK-NEXT: init(swift:) Sub
177
- check ( sub: 2 ) { _ = SubAsObjC . init ( objcToSwiftConvenience: ( ) ) }
179
+ check ( sub: 2 ) { SubAsObjC . init ( objcToSwiftConvenience: ( ) ) }
178
180
// CHECK-NEXT: init(objcToObjCConvenience:) Sub
179
181
// CHECK-NEXT: init(objcToObjC:) Sub
180
182
// CHECK-NEXT: init(objc:) Sub
181
- check ( sub: 1 ) { _ = SubAsObjC . init ( objcToObjCConvenience: ( ) ) }
183
+ check ( sub: 1 ) { SubAsObjC . init ( objcToObjCConvenience: ( ) ) }
182
184
183
185
// CHECK-NEXT: END
184
186
print ( " END " )
0 commit comments