Skip to content

Commit bd06c82

Browse files
committed
[region-isolation] Fix a test so that it uses similar type names to other tests. NFC.
1 parent 5d4b93f commit bd06c82

File tree

1 file changed

+49
-49
lines changed

1 file changed

+49
-49
lines changed

test/Concurrency/transfernonsendable_sending_params.swift

Lines changed: 49 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@
77
// MARK: Declarations //
88
////////////////////////
99

10-
class Klass {}
10+
class NonSendableKlass {}
1111

1212
struct NonSendableStruct {
13-
var first = Klass()
14-
var second = Klass()
13+
var first = NonSendableKlass()
14+
var second = NonSendableKlass()
1515
}
1616

1717
class KlassWithNonSendableStructPair {
@@ -50,53 +50,53 @@ struct CustomActor {
5050
@MainActor func transferToMain<T>(_ t: T) {}
5151
@CustomActor func transferToCustom<T>(_ t: T) {}
5252

53-
func transferArg(_ x: sending Klass) {
53+
func transferArg(_ x: sending NonSendableKlass) {
5454
}
5555

56-
func transferArgWithOtherParam(_ x: sending Klass, _ y: Klass) {
56+
func transferArgWithOtherParam(_ x: sending NonSendableKlass, _ y: NonSendableKlass) {
5757
}
5858

59-
func transferArgWithOtherParam2(_ x: Klass, _ y: sending Klass) {
59+
func transferArgWithOtherParam2(_ x: NonSendableKlass, _ y: sending NonSendableKlass) {
6060
}
6161

62-
func twoTransferArg(_ x: sending Klass, _ y: sending Klass) {}
62+
func twoTransferArg(_ x: sending NonSendableKlass, _ y: sending NonSendableKlass) {}
6363

64-
@MainActor var globalKlass = Klass()
64+
@MainActor var globalKlass = NonSendableKlass()
6565

6666
/////////////////
6767
// MARK: Tests //
6868
/////////////////
6969

7070
func testSimpleTransferLet() {
71-
let k = Klass()
71+
let k = NonSendableKlass()
7272
transferArg(k) // expected-warning {{sending 'k' risks causing data races}}
7373
// expected-note @-1 {{'k' used after being passed as a 'sending' parameter}}
7474
useValue(k) // expected-note {{access can happen concurrently}}
7575
}
7676

7777
func testSimpleTransferVar() {
78-
var k = Klass()
79-
k = Klass()
78+
var k = NonSendableKlass()
79+
k = NonSendableKlass()
8080
transferArg(k) // expected-warning {{sending 'k' risks causing data races}}
8181
// expected-note @-1 {{'k' used after being passed as a 'sending' parameter}}
8282
useValue(k) // expected-note {{access can happen concurrently}}
8383
}
8484

8585
func testSimpleTransferUseOfOtherParamNoError() {
86-
let k = Klass()
87-
let k2 = Klass()
86+
let k = NonSendableKlass()
87+
let k2 = NonSendableKlass()
8888
transferArgWithOtherParam(k, k2)
8989
useValue(k2)
9090
}
9191

9292
func testSimpleTransferUseOfOtherParamNoError2() {
93-
let k = Klass()
94-
let k2 = Klass()
93+
let k = NonSendableKlass()
94+
let k2 = NonSendableKlass()
9595
transferArgWithOtherParam2(k, k2)
9696
useValue(k)
9797
}
9898

99-
@MainActor func transferToMain2(_ x: sending Klass, _ y: Klass, _ z: Klass) async {
99+
@MainActor func transferToMain2(_ x: sending NonSendableKlass, _ y: NonSendableKlass, _ z: NonSendableKlass) async {
100100

101101
}
102102

@@ -108,83 +108,83 @@ func testNonStrongTransferDoesntMerge() async {
108108
// MARK: Transferring Parameter //
109109
//////////////////////////////////
110110

111-
func testTransferringParameter_canTransfer(_ x: sending Klass, _ y: Klass) async {
111+
func testTransferringParameter_canTransfer(_ x: sending NonSendableKlass, _ y: NonSendableKlass) async {
112112
await transferToMain(x)
113113
await transferToMain(y) // expected-warning {{sending 'y' risks causing data races}}
114114
// expected-note @-1 {{sending task-isolated 'y' to main actor-isolated global function 'transferToMain' risks causing data races between main actor-isolated and task-isolated uses}}
115115
}
116116

117-
func testTransferringParameter_cannotTransferTwice(_ x: sending Klass, _ y: Klass) async {
117+
func testTransferringParameter_cannotTransferTwice(_ x: sending NonSendableKlass, _ y: NonSendableKlass) async {
118118
await transferToMain(x) // expected-warning {{sending 'x' risks causing data races}}
119119
// expected-note @-1 {{sending 'x' to main actor-isolated global function 'transferToMain' risks causing data races between main actor-isolated and local nonisolated uses}}
120120

121121
// TODO: We should not error on this since we are sending to the same place.
122122
await transferToMain(x) // expected-note {{access can happen concurrently}}
123123
}
124124

125-
func testTransferringParameter_cannotUseAfterTransfer(_ x: sending Klass, _ y: Klass) async {
125+
func testTransferringParameter_cannotUseAfterTransfer(_ x: sending NonSendableKlass, _ y: NonSendableKlass) async {
126126
await transferToMain(x) // expected-warning {{sending 'x' risks causing data races}}
127127
// expected-note @-1 {{sending 'x' to main actor-isolated global function 'transferToMain' risks causing data races between main actor-isolated and local nonisolated uses}}
128128
useValue(x) // expected-note {{access can happen concurrently}}
129129
}
130130

131131
actor MyActor {
132-
var field = Klass()
132+
var field = NonSendableKlass()
133133

134-
func canTransferWithTransferringMethodArg(_ x: sending Klass, _ y: Klass) async {
134+
func canTransferWithTransferringMethodArg(_ x: sending NonSendableKlass, _ y: NonSendableKlass) async {
135135
await transferToMain(x)
136136
await transferToMain(y) // expected-warning {{sending 'y' risks causing data races}}
137137
// expected-note @-1 {{sending 'self'-isolated 'y' to main actor-isolated global function 'transferToMain' risks causing data races between main actor-isolated and 'self'-isolated uses}}
138138
}
139139

140-
func getNormalErrorIfTransferTwice(_ x: sending Klass) async {
140+
func getNormalErrorIfTransferTwice(_ x: sending NonSendableKlass) async {
141141
await transferToMain(x) // expected-warning {{sending 'x' risks causing data races}}
142142
// expected-note @-1 {{sending 'x' to main actor-isolated global function 'transferToMain' risks causing data races between main actor-isolated and local actor-isolated uses}}
143143
await transferToMain(x) // expected-note {{access can happen concurrently}}
144144
}
145145

146-
func getNormalErrorIfUseAfterTransfer(_ x: sending Klass) async {
146+
func getNormalErrorIfUseAfterTransfer(_ x: sending NonSendableKlass) async {
147147
await transferToMain(x) // expected-warning {{sending 'x' risks causing data races}}
148148
// expected-note @-1 {{sending 'x' to main actor-isolated global function 'transferToMain' risks causing data races between main actor-isolated and local actor-isolated uses}}
149149
useValue(x) // expected-note {{access can happen concurrently}}
150150
}
151151

152152
// After assigning into the actor, we can still use x in the actor as long as
153153
// we don't transfer it.
154-
func assignTransferringIntoActor(_ x: sending Klass) async {
154+
func assignTransferringIntoActor(_ x: sending NonSendableKlass) async {
155155
field = x
156156
useValue(x)
157157
}
158158

159159
// Once we assign into the actor, we cannot transfer further.
160-
func assignTransferringIntoActor2(_ x: sending Klass) async {
160+
func assignTransferringIntoActor2(_ x: sending NonSendableKlass) async {
161161
field = x
162162
await transferToMain(x) // expected-warning {{sending 'x' risks causing data races}}
163163
// expected-note @-1 {{sending 'self'-isolated 'x' to main actor-isolated global function 'transferToMain' risks causing data races between main actor-isolated and 'self'-isolated uses}}
164164
}
165165
}
166166

167-
@MainActor func canAssignTransferringIntoGlobalActor(_ x: sending Klass) async {
167+
@MainActor func canAssignTransferringIntoGlobalActor(_ x: sending NonSendableKlass) async {
168168
globalKlass = x
169169
}
170170

171-
@MainActor func canAssignTransferringIntoGlobalActor2(_ x: sending Klass) async {
171+
@MainActor func canAssignTransferringIntoGlobalActor2(_ x: sending NonSendableKlass) async {
172172
globalKlass = x
173173
// TODO: This is incorrect! sending should be independent of @MainActor.
174174
await transferToCustom(x) // expected-warning {{sending 'x' risks causing data races}}
175175
// expected-note @-1 {{sending main actor-isolated 'x' to global actor 'CustomActor'-isolated global function 'transferToCustom' risks causing data races between global actor 'CustomActor'-isolated and main actor-isolated uses}}
176176
}
177177

178-
@MainActor func canAssignTransferringIntoGlobalActor3(_ x: sending Klass) async {
179-
await transferToCustom(globalKlass) // expected-warning {{sending main actor-isolated value of type 'Klass' with later accesses to global actor 'CustomActor'-isolated context risks causing data races}}
178+
@MainActor func canAssignTransferringIntoGlobalActor3(_ x: sending NonSendableKlass) async {
179+
await transferToCustom(globalKlass) // expected-warning {{sending main actor-isolated value of type 'NonSendableKlass' with later accesses to global actor 'CustomActor'-isolated context risks causing data races}}
180180
}
181181

182-
func canTransferAssigningIntoLocal(_ x: sending Klass) async {
182+
func canTransferAssigningIntoLocal(_ x: sending NonSendableKlass) async {
183183
let _ = x
184184
await transferToMain(x)
185185
}
186186

187-
func canTransferAssigningIntoLocal2(_ x: sending Klass) async {
187+
func canTransferAssigningIntoLocal2(_ x: sending NonSendableKlass) async {
188188
let _ = x
189189
await transferToMain(x)
190190
// We do not error here since we just load the value and do not do anything
@@ -195,7 +195,7 @@ func canTransferAssigningIntoLocal2(_ x: sending Klass) async {
195195
let _ = x
196196
}
197197

198-
func canTransferAssigningIntoLocal2a(_ x: sending Klass) async {
198+
func canTransferAssigningIntoLocal2a(_ x: sending NonSendableKlass) async {
199199
let _ = x
200200
await transferToMain(x)
201201
// We do not error here since we just load the value and do not do anything
@@ -206,7 +206,7 @@ func canTransferAssigningIntoLocal2a(_ x: sending Klass) async {
206206
_ = x
207207
}
208208

209-
func canTransferAssigningIntoLocal3(_ x: sending Klass) async {
209+
func canTransferAssigningIntoLocal3(_ x: sending NonSendableKlass) async {
210210
let _ = x
211211
await transferToMain(x) // expected-warning {{sending 'x' risks causing data races}}
212212
// expected-note @-1 {{sending 'x' to main actor-isolated global function 'transferToMain' risks causing data races between main actor-isolated and local nonisolated uses}}
@@ -219,17 +219,17 @@ func canTransferAssigningIntoLocal3(_ x: sending Klass) async {
219219
//////////////////////////////////////
220220

221221
// Assigning into a 'sending' parameter is a merge.
222-
func assigningIsAMerge(_ x: sending Klass) async {
223-
let y = Klass()
222+
func assigningIsAMerge(_ x: sending NonSendableKlass) async {
223+
let y = NonSendableKlass()
224224

225225
x = y
226226

227227
// We can still transfer y since x is disconnected.
228228
await transferToMain(y)
229229
}
230230

231-
func assigningIsAMergeError(_ x: sending Klass) async {
232-
let y = Klass()
231+
func assigningIsAMergeError(_ x: sending NonSendableKlass) async {
232+
let y = NonSendableKlass()
233233

234234
x = y
235235

@@ -306,7 +306,7 @@ func mergeDoesNotEliminateEarlierTransfer(_ x: sending NonSendableStruct) async
306306

307307

308308
// Ok, this is disconnected.
309-
let y = Klass()
309+
let y = NonSendableKlass()
310310

311311
useValue(x)
312312

@@ -322,7 +322,7 @@ func mergeDoesNotEliminateEarlierTransfer(_ x: sending NonSendableStruct) async
322322

323323
func mergeDoesNotEliminateEarlierTransfer2(_ x: sending NonSendableStruct) async {
324324
// Ok, this is disconnected.
325-
let y = Klass()
325+
let y = NonSendableKlass()
326326

327327
useValue(x)
328328

@@ -334,24 +334,24 @@ func mergeDoesNotEliminateEarlierTransfer2(_ x: sending NonSendableStruct) async
334334
}
335335

336336
func doubleArgument() async {
337-
let x = Klass()
337+
let x = NonSendableKlass()
338338
twoTransferArg(x, x) // expected-warning {{sending 'x' risks causing data races}}
339339
// expected-note @-1 {{'x' used after being passed as a 'sending' parameter}}
340340
// expected-note @-2 {{access can happen concurrently}}
341341
}
342342

343-
func testTransferSrc(_ x: sending Klass) async {
344-
let y = Klass()
343+
func testTransferSrc(_ x: sending NonSendableKlass) async {
344+
let y = NonSendableKlass()
345345
await transferToMain(y) // expected-warning {{sending 'y' risks causing data races}}
346346
// expected-note @-1 {{sending 'y' to main actor-isolated global function 'transferToMain' risks causing data races between main actor-isolated and local nonisolated uses}}
347347
x = y // expected-note {{access can happen concurrently}}
348348
}
349349

350-
func testTransferOtherParam(_ x: sending Klass, y: Klass) async {
350+
func testTransferOtherParam(_ x: sending NonSendableKlass, y: NonSendableKlass) async {
351351
x = y
352352
}
353353

354-
func testTransferOtherParamTuple(_ x: sending Klass, y: (Klass, Klass)) async {
354+
func testTransferOtherParamTuple(_ x: sending NonSendableKlass, y: (NonSendableKlass, NonSendableKlass)) async {
355355
x = y.0
356356
}
357357

@@ -382,14 +382,14 @@ func taskIsolatedInsideError(_ x: @escaping @MainActor () async -> ()) {
382382

383383
// Make sure we error here on only the second since x by being assigned a part
384384
// of y becomes task-isolated
385-
func testMergeWithTaskIsolated(_ x: sending Klass, y: Klass) async {
385+
func testMergeWithTaskIsolated(_ x: sending NonSendableKlass, y: NonSendableKlass) async {
386386
await transferToMain(x)
387387
x = y
388388
await transferToMain(x) // expected-warning {{sending 'x' risks causing data races}}
389389
// expected-note @-1 {{sending task-isolated 'x' to main actor-isolated global function 'transferToMain' risks causing data races between main actor-isolated and task-isolated uses}}
390390
}
391391

392-
@MainActor func testMergeWithActorIsolated(_ x: sending Klass, y: Klass) async {
392+
@MainActor func testMergeWithActorIsolated(_ x: sending NonSendableKlass, y: NonSendableKlass) async {
393393
x = y
394394
await transferToCustom(x) // expected-warning {{sending 'x' risks causing data races}}
395395
// expected-note @-1 {{sending main actor-isolated 'x' to global actor 'CustomActor'-isolated global function 'transferToCustom' risks causing data races between global actor 'CustomActor'-isolated and main actor-isolated uses}}
@@ -398,8 +398,8 @@ func testMergeWithTaskIsolated(_ x: sending Klass, y: Klass) async {
398398

399399
@available(SwiftStdlib 5.1, *)
400400
actor NonSendableInit {
401-
var first: Klass
402-
var second: Klass? = nil {
401+
var first: NonSendableKlass
402+
var second: NonSendableKlass? = nil {
403403
@storageRestrictions(initializes: first)
404404
init(initialValue) {
405405
transferArg(initialValue!) // expected-warning {{sending 'initialValue' risks causing data races}}
@@ -415,6 +415,6 @@ actor NonSendableInit {
415415
func testNoCrashWhenSendingNoEscapeClosure() async {
416416
func test(_ x: sending () -> ()) async {}
417417

418-
let c = Klass()
418+
let c = NonSendableKlass()
419419
await test { print(c) }
420420
}

0 commit comments

Comments
 (0)