Skip to content

Commit 4557ed6

Browse files
authored
Merge pull request #69853 from hborla/downgrade-global-actor-accessor
[Concurrency] Downgrade invalid global actors on accessors to a warning until Swift 6.
2 parents fdca46c + 6b35328 commit 4557ed6

File tree

2 files changed

+10
-9
lines changed

2 files changed

+10
-9
lines changed

lib/Sema/TypeCheckConcurrency.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -436,6 +436,7 @@ GlobalActorAttributeRequest::evaluate(
436436
if (!accessor->isGetter()) {
437437
decl->diagnose(diag::global_actor_disallowed,
438438
decl->getDescriptiveKind())
439+
.warnUntilSwiftVersion(6)
439440
.fixItRemove(globalActorAttr->getRangeWithAt());
440441

441442
auto *storage = accessor->getStorage();

test/attr/global_actor.swift

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -156,10 +156,10 @@ do {
156156
var test1: Int {
157157
get { 42 }
158158
@GA1
159-
set { } // expected-error {{setter cannot have a global actor}} {{158:7-11=}}
159+
set { } // expected-warning {{setter cannot have a global actor}} {{158:7-11=}}
160160
// expected-note@-1 {{move global actor attribute to property 'test1'}} {{156:5-5=@GA1}}
161161

162-
@GA1 _modify { fatalError() } // expected-error {{_modify accessor cannot have a global actor}} {{7-12=}}
162+
@GA1 _modify { fatalError() } // expected-warning {{_modify accessor cannot have a global actor}} {{7-12=}}
163163
// expected-note@-1 {{move global actor attribute to property 'test1'}} {{156:5-5=@GA1}}
164164
}
165165

@@ -168,41 +168,41 @@ do {
168168
get { false }
169169

170170
@GA1
171-
set { } // expected-error {{setter cannot have a global actor}}
171+
set { } // expected-warning {{setter cannot have a global actor}}
172172
}
173173
}
174174

175175
@GA1 var testAlreadyWithGlobal: String {
176176
get { "" }
177-
@GA1 set { } // expected-error {{setter cannot have a global actor}} {{7-12=}}
177+
@GA1 set { } // expected-warning {{setter cannot have a global actor}} {{7-12=}}
178178
}
179179
}
180180

181181
struct TestStruct {
182182
var test1: Int {
183183
get { 42 }
184184
@GA1
185-
set { } // expected-error {{setter cannot have a global actor}} {{184:7-11=}}
185+
set { } // expected-warning {{setter cannot have a global actor}} {{184:7-11=}}
186186
// expected-note@-1 {{move global actor attribute to property 'test1'}} {{182:5-5=@GA1}}
187-
@GA1 _modify { fatalError() } // expected-error {{_modify accessor cannot have a global actor}} {{7-12=}}
187+
@GA1 _modify { fatalError() } // expected-warning {{_modify accessor cannot have a global actor}} {{7-12=}}
188188
// expected-note@-1 {{move global actor attribute to property 'test1'}} {{182:5-5=@GA1}}
189189
}
190190

191191
var test2: Int {
192-
@GA1 willSet { // expected-error {{willSet observer cannot have a global actor}} {{7-12=}}
192+
@GA1 willSet { // expected-warning {{willSet observer cannot have a global actor}} {{7-12=}}
193193
// expected-note@-1 {{move global actor attribute to property 'test2'}} {{191:5-5=@GA1}}
194194
}
195195
}
196196

197197
subscript(x: Int) -> Bool {
198198
get { true }
199-
@GA1 set { } // expected-error {{setter cannot have a global actor}} {{7-12=}}
199+
@GA1 set { } // expected-warning {{setter cannot have a global actor}} {{7-12=}}
200200
// expected-note@-1 {{move global actor attribute to subscript 'subscript(_:)'}} {{197:5-5=@GA1}}
201201
}
202202

203203
@GA1 subscript(y: Bool) -> String {
204204
get { "" }
205-
@GA1 set { } // expected-error {{setter cannot have a global actor}} {{7-12=}}
205+
@GA1 set { } // expected-warning {{setter cannot have a global actor}} {{7-12=}}
206206
}
207207
}
208208
}

0 commit comments

Comments
 (0)