@@ -3727,26 +3727,30 @@ NOTE(silence_debug_description_in_interpolation_segment_call,none,
3727
3727
" use 'String(describing:)' to silence this warning" , ())
3728
3728
3729
3729
NOTE(noescape_parameter,none,
3730
- " parameter %0 is implicitly non-escaping" ,
3731
- (Identifier))
3730
+ " parameter %1 is implicitly %select{ non-escaping|non-concurrent}0 " ,
3731
+ (unsigned , Identifier))
3732
3732
NOTE(generic_parameters_always_escaping,none,
3733
3733
" generic parameters are always considered '@escaping'" , ())
3734
3734
3735
- ERROR(passing_noescape_to_escaping,none,
3736
- " passing non-escaping parameter %0 to function expecting an @escaping closure" ,
3737
- (Identifier))
3735
+ ERROR(passing_noattrfunc_to_attrfunc,none,
3736
+ " passing %select{non-escaping|non-concurrent}0 parameter %1 to function "
3737
+ " expecting %select{an @escaping|a @concurrent}0 closure" ,
3738
+ (unsigned , Identifier))
3738
3739
ERROR(converting_noespace_param_to_generic_type,none,
3739
3740
" converting non-escaping parameter %0 to generic parameter %1 may allow it to escape" ,
3740
3741
(Identifier, Type))
3741
- ERROR(assigning_noescape_to_escaping,none,
3742
- " assigning non-escaping parameter %0 to an @escaping closure" ,
3743
- (Identifier))
3744
- ERROR(general_noescape_to_escaping,none,
3745
- " using non-escaping parameter %0 in a context expecting an @escaping closure" ,
3746
- (Identifier))
3747
- ERROR(converting_noescape_to_type,none,
3748
- " converting non-escaping value to %0 may allow it to escape" ,
3749
- (Type))
3742
+ ERROR(assigning_noattrfunc_to_attrfunc,none,
3743
+ " assigning %select{non-escaping|non-concurrent}0 parameter %1 to "
3744
+ " %select{an @escaping|a @concurrent}0 closure" ,
3745
+ (unsigned , Identifier))
3746
+ ERROR(general_noattrfunc_to_attr,none,
3747
+ " using %select{non-escaping|non-concurrent}0 parameter %1 in a context "
3748
+ " expecting %select{an @escaping|a @concurrent}0 closure" ,
3749
+ (unsigned , Identifier))
3750
+ ERROR(converting_noattrfunc_to_type,none,
3751
+ " converting %select{non-escaping|non-concurrent function}0 value to %1 "
3752
+ " may %select{allow it to escape|introduce data races}0" ,
3753
+ (unsigned , Type))
3750
3754
3751
3755
ERROR(capture_across_type_decl,none,
3752
3756
" %0 declaration cannot close over value %1 defined in outer scope" ,
@@ -4252,14 +4256,29 @@ ERROR(global_actor_from_nonactor_context,none,
4252
4256
ERROR(actor_isolated_partial_apply,none,
4253
4257
" actor-isolated %0 %1 can not be partially applied" ,
4254
4258
(DescriptiveDeclKind, DeclName))
4255
- WARNING(concurrent_access_local,none,
4256
- " local %0 %1 is unsafe to reference in code that may execute "
4257
- " concurrently" ,
4259
+ ERROR(concurrent_access_local,none,
4260
+ " use of local %0 %1 in concurrently-executing code" ,
4258
4261
(DescriptiveDeclKind, DeclName))
4259
- ERROR(actor_isolated_concurrent_access,none,
4260
- " actor-isolated %0 %1 is unsafe to reference in code "
4261
- " that may execute concurrently" ,
4262
+ ERROR(actor_isolated_from_concurrent_closure,none,
4263
+ " actor-isolated %0 %1 cannot be referenced from a concurrent closure" ,
4262
4264
(DescriptiveDeclKind, DeclName))
4265
+ ERROR(actor_isolated_from_concurrent_function,none,
4266
+ " actor-isolated %0 %1 cannot be referenced from a concurrent function" ,
4267
+ (DescriptiveDeclKind, DeclName))
4268
+ ERROR(actor_isolated_from_async_let,none,
4269
+ " actor-isolated %0 %1 cannot be referenced from 'async let' initializer" ,
4270
+ (DescriptiveDeclKind, DeclName))
4271
+ ERROR(actor_isolated_from_escaping_closure,none,
4272
+ " actor-isolated %0 %1 cannot be referenced from an '@escaping' closure" ,
4273
+ (DescriptiveDeclKind, DeclName))
4274
+ ERROR(local_function_executed_concurrently,none,
4275
+ " concurrently-executed %0 %1 must be marked as '@concurrent'" ,
4276
+ (DescriptiveDeclKind, DeclName))
4277
+ ERROR(concurrent_mutation_of_local_capture,none,
4278
+ " mutation of captured %0 %1 in concurrently-executing code" ,
4279
+ (DescriptiveDeclKind, DeclName))
4280
+ NOTE(concurrent_access_here,none,
4281
+ " access in concurrently-executed code here" , ())
4263
4282
NOTE(actor_isolated_sync_func,none,
4264
4283
" calls to %0 %1 from outside of its actor context are "
4265
4284
" implicitly asynchronous" ,
0 commit comments