File tree Expand file tree Collapse file tree 4 files changed +7
-5
lines changed Expand file tree Collapse file tree 4 files changed +7
-5
lines changed Original file line number Diff line number Diff line change @@ -6636,7 +6636,8 @@ void AttributeChecker::visitNonisolatedAttr(NonisolatedAttr *attr) {
6636
6636
// backing storage is a stored 'var' that is part of the internal state
6637
6637
// of the actor which could only be accessed in actor's isolation context.
6638
6638
if (var->hasAttachedPropertyWrapper ()) {
6639
- diagnoseAndRemoveAttr (attr, diag::nonisolated_wrapped_property);
6639
+ diagnoseAndRemoveAttr (attr, diag::nonisolated_wrapped_property)
6640
+ .warnUntilSwiftVersionIf (attr->isImplicit (), 6 );
6640
6641
return ;
6641
6642
}
6642
6643
Original file line number Diff line number Diff line change @@ -2165,6 +2165,7 @@ class DeclChecker : public DeclVisitor<DeclChecker> {
2165
2165
(void ) VD->getPropertyWrapperAuxiliaryVariables ();
2166
2166
(void ) VD->getPropertyWrapperInitializerInfo ();
2167
2167
(void ) VD->getImplInfo ();
2168
+ (void ) getActorIsolation (VD);
2168
2169
2169
2170
// Visit auxiliary decls first
2170
2171
VD->visitAuxiliaryDecls ([&](VarDecl *var) {
Original file line number Diff line number Diff line change @@ -390,7 +390,7 @@ struct HasWrapperOnActor {
390
390
synced = 17
391
391
}
392
392
393
- @WrapperActor var actorSynced : Int = 0
393
+ @WrapperActor var actorSynced : Int = 0 // expected-warning{{'nonisolated' is not supported on properties with property wrappers}}
394
394
395
395
func testActorSynced( ) {
396
396
_ = actorSynced
@@ -491,10 +491,10 @@ struct SimplePropertyWrapper {
491
491
class WrappedContainsNonisolatedAttr {
492
492
@SimplePropertyWrapper nonisolated var value
493
493
// expected-error@-1 {{'nonisolated' is not supported on properties with property wrappers}}
494
- // expected-note@-2 2 {{property declared here}}
494
+ // expected-note@-2 {{property declared here}}
495
495
496
496
nonisolated func test( ) {
497
- _ = value // expected-error {{main actor-isolated property 'value' can not be referenced from a non-isolated context}}
497
+ _ = value
498
498
_ = $value // expected-error {{main actor-isolated property '$value' can not be referenced from a non-isolated context}}
499
499
}
500
500
}
Original file line number Diff line number Diff line change @@ -117,7 +117,7 @@ struct HasWrapperOnActor {
117
117
synced = 17
118
118
}
119
119
120
- @WrapperActor var actorSynced : Int = 0
120
+ @WrapperActor var actorSynced : Int = 0 // expected-error{{'nonisolated' is not supported on properties with property wrappers}}
121
121
122
122
func testActorSynced( ) {
123
123
_ = actorSynced
You can’t perform that action at this time.
0 commit comments