Skip to content

Commit 4d600ff

Browse files
authored
Merge pull request #21861 from jrose-apple/and-you-get-a-promotion-and-you-get-a-promotion
2 parents 22b5143 + 80ef1f5 commit 4d600ff

File tree

1 file changed

+21
-19
lines changed

1 file changed

+21
-19
lines changed

test/Interpreter/convenience_init_peer_delegation.swift

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -100,12 +100,13 @@ allocObjectImpl.pointee = {
100100

101101
/// Checks that `op` performs `base` allocations of Base and `sub` allocations
102102
/// of Sub.
103+
@inline(never)
103104
func check(base: Int = 0, sub: Int = 0,
104105
file: StaticString = #file, line: UInt = #line,
105-
op: () -> Void) {
106+
op: () -> AnyObject) {
106107
baseCounter = 0
107108
subCounter = 0
108-
op()
109+
_ = op()
109110
precondition(baseCounter == base,
110111
"expected \(base) Base instances, got \(baseCounter)",
111112
file: file, line: line)
@@ -114,48 +115,49 @@ func check(base: Int = 0, sub: Int = 0,
114115
file: file, line: line)
115116
}
116117

118+
117119
// CHECK: START
118120
print("START")
119121

120122
// Check that this whole setup works.
121123
// CHECK-NEXT: init(swift:) Base
122-
check(base: 1) { _ = Base(swift: ()) }
124+
check(base: 1) { Base(swift: ()) }
123125
// CHECK-NEXT: init(swift:) Sub
124-
check(sub: 1) { _ = Sub(swift: ()) }
126+
check(sub: 1) { Sub(swift: ()) }
125127
// CHECK-NEXT: init(objc:) Base
126-
check(base: 1) { _ = Base(objc: ()) }
128+
check(base: 1) { Base(objc: ()) }
127129
// CHECK-NEXT: init(objc:) Sub
128-
check(sub: 1) { _ = Sub(objc: ()) }
130+
check(sub: 1) { Sub(objc: ()) }
129131

130132
// CHECK-NEXT: init(swiftToSwift:) Sub
131133
// CHECK-NEXT: init(swift:) Sub
132-
check(sub: 1) { _ = Sub(swiftToSwift: ()) }
134+
check(sub: 1) { Sub(swiftToSwift: ()) }
133135
// CHECK-NEXT: init(objcToSwift:) Sub
134136
// CHECK-NEXT: init(swift:) Sub
135-
check(sub: 2) { _ = Sub(objcToSwift: ()) }
137+
check(sub: 2) { Sub(objcToSwift: ()) }
136138
// CHECK-NEXT: init(swiftToObjC:) Sub
137139
// CHECK-NEXT: init(objc:) Sub
138-
check(sub: 1) { _ = Sub(swiftToObjC: ()) }
140+
check(sub: 1) { Sub(swiftToObjC: ()) }
139141
// CHECK-NEXT: init(objcToObjC:) Sub
140142
// CHECK-NEXT: init(objc:) Sub
141-
check(sub: 1) { _ = Sub(objcToObjC: ()) }
143+
check(sub: 1) { Sub(objcToObjC: ()) }
142144

143145
// CHECK-NEXT: init(swiftToSwiftConvenience:) Sub
144146
// CHECK-NEXT: init(swiftToSwift:) Sub
145147
// CHECK-NEXT: init(swift:) Sub
146-
check(sub: 1) { _ = Sub(swiftToSwiftConvenience: ()) }
148+
check(sub: 1) { Sub(swiftToSwiftConvenience: ()) }
147149
// CHECK-NEXT: init(objcToSwiftConvenience:) Sub
148150
// CHECK-NEXT: init(swiftToSwift:) Sub
149151
// CHECK-NEXT: init(swift:) Sub
150-
check(sub: 2) { _ = Sub(objcToSwiftConvenience: ()) }
152+
check(sub: 2) { Sub(objcToSwiftConvenience: ()) }
151153
// CHECK-NEXT: init(swiftToObjCConvenience:) Sub
152154
// CHECK-NEXT: init(objcToObjC:) Sub
153155
// CHECK-NEXT: init(objc:) Sub
154-
check(sub: 1) { _ = Sub(swiftToObjCConvenience: ()) }
156+
check(sub: 1) { Sub(swiftToObjCConvenience: ()) }
155157
// CHECK-NEXT: init(objcToObjCConvenience:) Sub
156158
// CHECK-NEXT: init(objcToObjC:) Sub
157159
// CHECK-NEXT: init(objc:) Sub
158-
check(sub: 1) { _ = Sub(objcToObjCConvenience: ()) }
160+
check(sub: 1) { Sub(objcToObjCConvenience: ()) }
159161

160162
// Force ObjC dispatch without conforming Sub or Base to the protocol,
161163
// because it's possible that `required` perturbs things and we want to test
@@ -164,21 +166,21 @@ let SubAsObjC = unsafeBitCast(Sub.self as AnyObject,
164166
to: ForceObjCDispatch.Type.self)
165167

166168
// CHECK-NEXT: init(objc:) Sub
167-
check(sub: 1) { _ = SubAsObjC.init(objc: ()) }
169+
check(sub: 1) { SubAsObjC.init(objc: ()) }
168170
// CHECK-NEXT: init(objcToSwift:) Sub
169171
// CHECK-NEXT: init(swift:) Sub
170-
check(sub: 2) { _ = SubAsObjC.init(objcToSwift: ()) }
172+
check(sub: 2) { SubAsObjC.init(objcToSwift: ()) }
171173
// CHECK-NEXT: init(objcToObjC:) Sub
172174
// CHECK-NEXT: init(objc:) Sub
173-
check(sub: 1) { _ = SubAsObjC.init(objcToObjC: ()) }
175+
check(sub: 1) { SubAsObjC.init(objcToObjC: ()) }
174176
// CHECK-NEXT: init(objcToSwiftConvenience:) Sub
175177
// CHECK-NEXT: init(swiftToSwift:) Sub
176178
// CHECK-NEXT: init(swift:) Sub
177-
check(sub: 2) { _ = SubAsObjC.init(objcToSwiftConvenience: ()) }
179+
check(sub: 2) { SubAsObjC.init(objcToSwiftConvenience: ()) }
178180
// CHECK-NEXT: init(objcToObjCConvenience:) Sub
179181
// CHECK-NEXT: init(objcToObjC:) Sub
180182
// CHECK-NEXT: init(objc:) Sub
181-
check(sub: 1) { _ = SubAsObjC.init(objcToObjCConvenience: ()) }
183+
check(sub: 1) { SubAsObjC.init(objcToObjCConvenience: ()) }
182184

183185
// CHECK-NEXT: END
184186
print("END")

0 commit comments

Comments
 (0)