Skip to content

Commit 5678526

Browse files
committed
[sending] Change transferring diagnostics to say sending instead of transferring.
Just trying to slice off a larger change where I change these tests to actually use 'sending'. This is nice to do now since it is algebraic to do. rdar://128216574 (cherry picked from commit 71e95b9)
1 parent b518ee1 commit 5678526

10 files changed

+49
-49
lines changed

include/swift/AST/DiagnosticsSIL.def

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -990,14 +990,14 @@ NOTE(regionbasedisolation_named_transfer_non_transferrable, none,
990990
NOTE(regionbasedisolation_named_transfer_non_transferrable_callee, none,
991991
"sending %1%0 to %2 %3 %4 risks causing data races between %2 and %5 uses",
992992
(Identifier, StringRef, ActorIsolation, DescriptiveDeclKind, DeclName, StringRef))
993-
NOTE(regionbasedisolation_named_transfer_into_transferring_param, none,
994-
"%0%1 is passed as a transferring parameter; Uses in callee may race with later %0uses",
993+
NOTE(regionbasedisolation_named_transfer_into_sending_param, none,
994+
"%0%1 is passed as a 'sending' parameter; Uses in callee may race with later %0uses",
995995
(StringRef, Identifier))
996996
NOTE(regionbasedisolation_named_notransfer_transfer_into_result, none,
997-
"%0%1 cannot be a transferring result. %2 uses may race with caller uses",
997+
"%0%1 cannot be a 'sending' result. %2 uses may race with caller uses",
998998
(StringRef, Identifier, StringRef))
999-
NOTE(regionbasedisolation_named_stronglytransferred_binding, none,
1000-
"%0 used after being passed as a transferring parameter; Later uses could race",
999+
NOTE(regionbasedisolation_named_value_used_after_explicit_sending, none,
1000+
"%0 used after being passed as a 'sending' parameter; Later uses could race",
10011001
(Identifier))
10021002
NOTE(regionbasedisolation_named_isolated_closure_yields_race, none,
10031003
"%0%1 is captured by a %2 closure. %2 uses in closure may race against later %3 uses",

lib/SILOptimizer/Mandatory/TransferNonSendable.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -579,7 +579,8 @@ class UseAfterTransferDiagnosticEmitter {
579579

580580
// Then emit the note with greater context.
581581
diagnoseNote(
582-
loc, diag::regionbasedisolation_named_stronglytransferred_binding, name)
582+
loc, diag::regionbasedisolation_named_value_used_after_explicit_sending,
583+
name)
583584
.highlight(loc.getSourceRange());
584585

585586
// Finally the require points.
@@ -1170,8 +1171,7 @@ class TransferNonTransferrableDiagnosticEmitter {
11701171
os << ' ';
11711172
}
11721173
}
1173-
auto diag =
1174-
diag::regionbasedisolation_named_transfer_into_transferring_param;
1174+
auto diag = diag::regionbasedisolation_named_transfer_into_sending_param;
11751175
diagnoseNote(loc, diag, descriptiveKindStr, varName);
11761176
}
11771177

test/ClangImporter/transferring.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,6 @@ func funcTestTransferringResult() async {
3535
func funcTestTransferringArg() async {
3636
let x = NonSendableCStruct()
3737
transferUserDefinedIntoGlobalFunction(x) // expected-error {{sending 'x' risks causing data races}}
38-
// expected-note @-1 {{'x' used after being passed as a transferring parameter}}
38+
// expected-note @-1 {{'x' used after being passed as a 'sending' parameter}}
3939
useValue(x) // expected-note {{access can happen concurrently}}
4040
}

test/ClangImporter/transferring_objc.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ func methodTestTransferringArg() async {
2626
let x = MyType()
2727
let s = NSObject()
2828
let _ = x.getResultWithTransferringArgument(s) // expected-error {{sending 's' risks causing data races}}
29-
// expected-note @-1 {{'s' used after being passed as a transferring parameter; Later uses could race}}
29+
// expected-note @-1 {{'s' used after being passed as a 'sending' parameter; Later uses could race}}
3030
useValue(s) // expected-note {{access can happen concurrently}}
3131
}
3232

@@ -53,6 +53,6 @@ func funcTestTransferringResult() async {
5353
func funcTestTransferringArg() async {
5454
let x = NSObject()
5555
transferNSObjectToGlobalFunction(x) // expected-error {{sending 'x' risks causing data races}}
56-
// expected-note @-1 {{'x' used after being passed as a transferring parameter; Later uses could race}}
56+
// expected-note @-1 {{'x' used after being passed as a 'sending' parameter; Later uses could race}}
5757
useValue(x) // expected-note {{access can happen concurrently}}
5858
}

test/Concurrency/transfernonsendable.sil

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ bb0(%0 : @guaranteed $NonSendableStruct):
227227
%2 = struct_extract %0 : $NonSendableStruct, #NonSendableStruct.ns
228228
%3 = copy_value %2 : $NonSendableKlass
229229
return %3 : $NonSendableKlass // expected-warning {{sending 'myname.ns' risks causing data races}}
230-
// expected-note @-1 {{task-isolated 'myname.ns' cannot be a transferring result. task-isolated uses may race with caller uses}}
230+
// expected-note @-1 {{task-isolated 'myname.ns' cannot be a 'sending' result. task-isolated uses may race with caller uses}}
231231
}
232232

233233
sil [ossa] @synchronous_returns_transferring_globalactor_struct_structextract : $@convention(method) (@guaranteed MainActorIsolatedStruct) -> @sil_sending @owned NonSendableKlass {
@@ -236,7 +236,7 @@ bb0(%0 : @guaranteed $MainActorIsolatedStruct):
236236
%2 = struct_extract %0 : $MainActorIsolatedStruct, #MainActorIsolatedStruct.ns
237237
%3 = copy_value %2 : $NonSendableKlass
238238
return %3 : $NonSendableKlass // expected-warning {{sending 'myname.ns' risks causing data races}}
239-
// expected-note @-1 {{main actor-isolated 'myname.ns' cannot be a transferring result. main actor-isolated uses may race with caller uses}}
239+
// expected-note @-1 {{main actor-isolated 'myname.ns' cannot be a 'sending' result. main actor-isolated uses may race with caller uses}}
240240
}
241241

242242
sil [ossa] @synchronous_returns_transferring_globalactor_struct_structelementaddr : $@convention(method) (@in_guaranteed MainActorIsolatedStruct) -> @sil_sending @owned NonSendableKlass {
@@ -245,7 +245,7 @@ bb0(%0 : $*MainActorIsolatedStruct):
245245
%2 = struct_element_addr %0 : $*MainActorIsolatedStruct, #MainActorIsolatedStruct.ns
246246
%3 = load [copy] %2 : $*NonSendableKlass
247247
return %3 : $NonSendableKlass // expected-warning {{sending 'myname.ns' risks causing data races}}
248-
// expected-note @-1 {{main actor-isolated 'myname.ns' cannot be a transferring result. main actor-isolated uses may race with caller uses}}
248+
// expected-note @-1 {{main actor-isolated 'myname.ns' cannot be a 'sending' result. main actor-isolated uses may race with caller uses}}
249249
}
250250

251251
sil [ossa] @synchronous_returns_transferring_globalactor_enum_uncheckedenumdata : $@convention(method) (@guaranteed MainActorIsolatedEnum) -> @sil_sending @owned NonSendableKlass {
@@ -254,7 +254,7 @@ bb0(%0 : @guaranteed $MainActorIsolatedEnum):
254254
%2 = unchecked_enum_data %0 : $MainActorIsolatedEnum, #MainActorIsolatedEnum.second!enumelt
255255
%3 = copy_value %2 : $NonSendableKlass
256256
return %3 : $NonSendableKlass // expected-warning {{sending 'myname.second' risks causing data races}}
257-
// expected-note @-1 {{main actor-isolated 'myname.second' cannot be a transferring result. main actor-isolated uses may race with caller uses}}
257+
// expected-note @-1 {{main actor-isolated 'myname.second' cannot be a 'sending' result. main actor-isolated uses may race with caller uses}}
258258
}
259259

260260
sil [ossa] @synchronous_returns_transferring_globalactor_enum_uncheckedtakeenumdataaddr : $@convention(method) (@in MainActorIsolatedEnum) -> @sil_sending @owned NonSendableKlass {
@@ -263,7 +263,7 @@ bb0(%0 : $*MainActorIsolatedEnum):
263263
%2 = unchecked_take_enum_data_addr %0 : $*MainActorIsolatedEnum, #MainActorIsolatedEnum.second!enumelt
264264
%3 = load [take] %2 : $*NonSendableKlass
265265
return %3 : $NonSendableKlass // expected-warning {{sending 'myname.second' risks causing data races}}
266-
// expected-note @-1 {{main actor-isolated 'myname.second' cannot be a transferring result. main actor-isolated uses may race with caller uses}}
266+
// expected-note @-1 {{main actor-isolated 'myname.second' cannot be a 'sending' result. main actor-isolated uses may race with caller uses}}
267267
}
268268

269269
sil [ossa] @synchronous_returns_transferring_globalactor_enum_switchenum : $@convention(method) (@guaranteed MainActorIsolatedEnum) -> @sil_sending @owned FakeOptional<NonSendableKlass> {
@@ -282,7 +282,7 @@ bb2(%1 : @guaranteed $NonSendableKlass):
282282

283283
bb3(%4 : @owned $FakeOptional<NonSendableKlass>):
284284
return %4 : $FakeOptional<NonSendableKlass> // expected-warning {{sending 'myname.some' risks causing data races}}
285-
// expected-note @-1 {{main actor-isolated 'myname.some' cannot be a transferring result. main actor-isolated uses may race with caller uses}}
285+
// expected-note @-1 {{main actor-isolated 'myname.some' cannot be a 'sending' result. main actor-isolated uses may race with caller uses}}
286286
}
287287

288288
sil [ossa] @warningIfCallingGetter : $@convention(method) @async (@sil_isolated @guaranteed MyActor) -> () {

test/Concurrency/transfernonsendable_global_actor_nonsendable.swift

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ extension NonSendableGlobalActorIsolatedStruct {
102102
mutating func test3() -> transferring NonSendableKlass {
103103
self.k
104104
} // expected-error {{sending 'self.k' risks causing data races}}
105-
// expected-note @-1 {{main actor-isolated 'self.k' cannot be a transferring result. main actor-isolated uses may race with caller uses}}
105+
// expected-note @-1 {{main actor-isolated 'self.k' cannot be a 'sending' result. main actor-isolated uses may race with caller uses}}
106106

107107
mutating func test4() -> (any GlobalActorIsolatedProtocol)? {
108108
self.p
@@ -167,7 +167,7 @@ extension NonSendableGlobalActorIsolatedEnum {
167167
}
168168
return x
169169
} // expected-error {{sending 'x.some' risks causing data races}}
170-
// expected-note @-1 {{main actor-isolated 'x.some' cannot be a transferring result. main actor-isolated uses may race with caller uses}}
170+
// expected-note @-1 {{main actor-isolated 'x.some' cannot be a 'sending' result. main actor-isolated uses may race with caller uses}}
171171
}
172172

173173
extension NonSendableGlobalActorIsolatedKlass {
@@ -182,7 +182,7 @@ extension NonSendableGlobalActorIsolatedKlass {
182182
func test3() -> transferring NonSendableKlass {
183183
self.k
184184
} // expected-error {{sending 'self.k' risks causing data races}}
185-
// expected-note @-1 {{main actor-isolated 'self.k' cannot be a transferring result. main actor-isolated uses may race with caller uses}}
185+
// expected-note @-1 {{main actor-isolated 'self.k' cannot be a 'sending' result. main actor-isolated uses may race with caller uses}}
186186

187187
func test4() -> (any GlobalActorIsolatedProtocol)? {
188188
self.p
@@ -215,7 +215,7 @@ extension FinalNonSendableGlobalActorIsolatedKlass {
215215
func test3() -> transferring NonSendableKlass {
216216
self.k
217217
} // expected-error {{sending 'self.k' risks causing data races}}
218-
// expected-note @-1 {{main actor-isolated 'self.k' cannot be a transferring result. main actor-isolated uses may race with caller uses}}
218+
// expected-note @-1 {{main actor-isolated 'self.k' cannot be a 'sending' result. main actor-isolated uses may race with caller uses}}
219219

220220
func test4() -> (any GlobalActorIsolatedProtocol)? {
221221
self.p
@@ -248,7 +248,7 @@ extension GlobalActorIsolatedProtocol {
248248
mutating func test3() -> transferring NonSendableKlass {
249249
self.k
250250
} // expected-error {{sending 'self.k' risks causing data races}}
251-
// expected-note @-1 {{main actor-isolated 'self.k' cannot be a transferring result. main actor-isolated uses may race with caller uses}}
251+
// expected-note @-1 {{main actor-isolated 'self.k' cannot be a 'sending' result. main actor-isolated uses may race with caller uses}}
252252

253253
mutating func test4() -> (any GlobalActorIsolatedProtocol)? {
254254
self.p

test/Concurrency/transfernonsendable_preconcurrency_transferring.swift

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,9 @@ func testPreconcurrencyExplicitlyNonSendable() async {
6363
transferArg(x)
6464

6565
// expected-swift-5-warning @-2 {{sending 'x' risks causing data races}}
66-
// expected-swift-5-note @-3 {{'x' used after being passed as a transferring parameter; Later uses could race}}
66+
// expected-swift-5-note @-3 {{'x' used after being passed as a 'sending' parameter; Later uses could race}}
6767
// expected-swift-6-warning @-4 {{sending 'x' risks causing data races}}
68-
// expected-swift-6-note @-5 {{'x' used after being passed as a transferring parameter; Later uses could race}}
68+
// expected-swift-6-note @-5 {{'x' used after being passed as a 'sending' parameter; Later uses could race}}
6969
useValue(x)
7070
// expected-swift-5-note @-1 {{access can happen concurrently}}
7171
// expected-swift-6-note @-2 {{access can happen concurrently}}
@@ -77,8 +77,8 @@ func testNormal() async {
7777
transferArg(x) // expected-swift-5-no-tns-warning {{passing argument of non-sendable type 'PostCUncheckedNonSendableKlass' (aka 'NonSendableKlass') into main actor-isolated context may introduce data races}}
7878
// expected-swift-5-warning @-1 {{sending 'x' risks causing data races}}
7979
// expected-swift-6-error @-2 {{sending 'x' risks causing data races}}
80-
// expected-swift-5-note @-3 {{'x' used after being passed as a transferring parameter; Later uses could race}}
81-
// expected-swift-6-note @-4 {{'x' used after being passed as a transferring parameter; Later uses could race}}
80+
// expected-swift-5-note @-3 {{'x' used after being passed as a 'sending' parameter; Later uses could race}}
81+
// expected-swift-6-note @-4 {{'x' used after being passed as a 'sending' parameter; Later uses could race}}
8282
useValue(x) // expected-swift-5-note {{access can happen concurrently}}
8383
// expected-swift-6-note @-1 {{access can happen concurrently}}
8484
}
@@ -91,9 +91,9 @@ func testOnlyErrorOnExactValue() async {
9191
transferArg(y)
9292
// expected-swift-5-no-tns-warning @-1 2{{passing argument of non-sendable type '(PreCUncheckedNonSendableKlass, PreCUncheckedNonSendableKlass)' (aka '(NonSendableKlass, NonSendableKlass)') into main actor-isolated context may introduce data races}}
9393
// expected-swift-5-warning @-2 {{sending 'y' risks causing data races}}
94-
// expected-swift-5-note @-3 {{'y' used after being passed as a transferring parameter; Later uses could race}}
94+
// expected-swift-5-note @-3 {{'y' used after being passed as a 'sending' parameter; Later uses could race}}
9595
// expected-swift-6-error @-4 {{sending 'y' risks causing data races}}
96-
// expected-swift-6-note @-5 {{'y' used after being passed as a transferring parameter; Later uses could race}}
96+
// expected-swift-6-note @-5 {{'y' used after being passed as a 'sending' parameter; Later uses could race}}
9797
useValue(x)
9898
// expected-swift-5-note @-1 {{access can happen concurrently}}
9999
// expected-swift-6-note @-2 {{access can happen concurrently}}
@@ -118,35 +118,35 @@ func testNeverTransfer(_ x: PreCUncheckedNonSendableKlass) async {
118118
func testNeverTransferExplicit(_ x: PreCUncheckedExplicitlyNonSendableKlass) async {
119119
transferArg(x) // expected-swift-5-no-tns-warning {{passing argument of non-sendable type 'PreCUncheckedExplicitlyNonSendableKlass' (aka 'ExplicitlyNonSendableKlass') into main actor-isolated context may introduce data races}}
120120
// expected-swift-5-warning @-1 {{sending 'x' risks causing data races}}
121-
// expected-swift-5-note @-2 {{task-isolated 'x' is passed as a transferring parameter; Uses in callee may race with later task-isolated uses}}
121+
// expected-swift-5-note @-2 {{task-isolated 'x' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses}}
122122
// expected-swift-6-warning @-3 {{sending 'x' risks causing data races}}
123-
// expected-swift-6-note @-4 {{task-isolated 'x' is passed as a transferring parameter; Uses in callee may race with later task-isolated uses}}
123+
// expected-swift-6-note @-4 {{task-isolated 'x' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses}}
124124
}
125125

126126
func testNeverTransferNormal(_ x: PostCUncheckedNonSendableKlass) async {
127127
transferArg(x) // expected-swift-5-no-tns-warning {{passing argument of non-sendable type 'PostCUncheckedNonSendableKlass' (aka 'NonSendableKlass') into main actor-isolated context may introduce data races}}
128128
// expected-swift-5-warning @-1 {{sending 'x' risks causing data races}}
129-
// expected-swift-5-note @-2 {{task-isolated 'x' is passed as a transferring parameter; Uses in callee may race with later task-isolated uses}}
129+
// expected-swift-5-note @-2 {{task-isolated 'x' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses}}
130130
// expected-swift-6-error @-3 {{sending 'x' risks causing data races}}
131-
// expected-swift-6-note @-4 {{task-isolated 'x' is passed as a transferring parameter; Uses in callee may race with later task-isolated uses}}
131+
// expected-swift-6-note @-4 {{task-isolated 'x' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses}}
132132
}
133133

134134
// Inexact match => normal behavior.
135135
func testNeverTransferInexactMatch(_ x: (PreCUncheckedNonSendableKlass, PreCUncheckedNonSendableKlass)) async {
136136
transferArg(x) // expected-swift-5-no-tns-warning 2{{passing argument of non-sendable type '(PreCUncheckedNonSendableKlass, PreCUncheckedNonSendableKlass)' (aka '(NonSendableKlass, NonSendableKlass)') into main actor-isolated context may introduce data races}}
137137
// expected-swift-5-warning @-1 {{sending 'x' risks causing data races}}
138-
// expected-swift-5-note @-2 {{task-isolated 'x' is passed as a transferring parameter; Uses in callee may race with later task-isolated uses}}
138+
// expected-swift-5-note @-2 {{task-isolated 'x' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses}}
139139
// expected-swift-6-error @-3 {{sending 'x' risks causing data races}}
140-
// expected-swift-6-note @-4 {{task-isolated 'x' is passed as a transferring parameter; Uses in callee may race with later task-isolated uses}}
140+
// expected-swift-6-note @-4 {{task-isolated 'x' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses}}
141141
}
142142

143143
// Inexact match => normal behavior.
144144
func testNeverTransferInexactMatchExplicit(_ x: (PreCUncheckedExplicitlyNonSendableKlass, PreCUncheckedExplicitlyNonSendableKlass)) async {
145145
transferArg(x) // expected-swift-5-no-tns-warning {{passing argument of non-sendable type '(PreCUncheckedExplicitlyNonSendableKlass, PreCUncheckedExplicitlyNonSendableKlass)' (aka '(ExplicitlyNonSendableKlass, ExplicitlyNonSendableKlass)') into main actor-isolated context may introduce data races}}
146146
// expected-swift-5-warning @-1 {{sending 'x' risks causing data races}}
147-
// expected-swift-5-note @-2 {{task-isolated 'x' is passed as a transferring parameter; Uses in callee may race with later task-isolated uses}}
147+
// expected-swift-5-note @-2 {{task-isolated 'x' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses}}
148148
// expected-swift-6-error @-3 {{sending 'x' risks causing data races}}
149-
// expected-swift-6-note @-4 {{task-isolated 'x' is passed as a transferring parameter; Uses in callee may race with later task-isolated uses}}
149+
// expected-swift-6-note @-4 {{task-isolated 'x' is passed as a 'sending' parameter; Uses in callee may race with later task-isolated uses}}
150150
}
151151

152152

0 commit comments

Comments
 (0)