Skip to content

Commit b99995c

Browse files
committed
[Concurrency] Downgrade isolated_default_argument_context to a warning until
Swift 6 for stored properties.
1 parent d37b976 commit b99995c

File tree

4 files changed

+12
-11
lines changed

4 files changed

+12
-11
lines changed

lib/Sema/TypeCheckConcurrency.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5055,7 +5055,8 @@ DefaultInitializerIsolation::evaluate(Evaluator &evaluator,
50555055
if (enclosingIsolation != requiredIsolation) {
50565056
var->diagnose(
50575057
diag::isolated_default_argument_context,
5058-
requiredIsolation, enclosingIsolation);
5058+
requiredIsolation, enclosingIsolation)
5059+
.warnUntilSwiftVersionIf(!isa<ParamDecl>(var), 6);
50595060
return ActorIsolation::forUnspecified();
50605061
}
50615062
}

test/Concurrency/actor_isolation.swift

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -784,15 +784,15 @@ actor LazyActor {
784784
lazy var l25: Int = { [unowned self] in self.l }()
785785

786786
nonisolated lazy var l31: Int = { v }()
787-
// expected-error@-1 {{actor-isolated default value in a nonisolated context}}
787+
// expected-warning@-1 {{actor-isolated default value in a nonisolated context; this is an error in Swift 6}}
788788
nonisolated lazy var l32: Int = v
789-
// expected-error@-1 {{actor-isolated default value in a nonisolated context}}
789+
// expected-warning@-1 {{actor-isolated default value in a nonisolated context; this is an error in Swift 6}}
790790
nonisolated lazy var l33: Int = { self.v }()
791-
// expected-error@-1 {{actor-isolated default value in a nonisolated context}}
791+
// expected-warning@-1 {{actor-isolated default value in a nonisolated context; this is an error in Swift 6}}
792792
nonisolated lazy var l34: Int = self.v
793-
// expected-error@-1 {{actor-isolated default value in a nonisolated context}}
793+
// expected-warning@-1 {{actor-isolated default value in a nonisolated context; this is an error in Swift 6}}
794794
nonisolated lazy var l35: Int = { [unowned self] in self.v }()
795-
// expected-error@-1 {{actor-isolated default value in a nonisolated context}}
795+
// expected-warning@-1 {{actor-isolated default value in a nonisolated context; this is an error in Swift 6}}
796796

797797
nonisolated lazy var l41: Int = { l }()
798798
nonisolated lazy var l42: Int = l

test/Concurrency/global_actor_inference.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -445,7 +445,7 @@ actor ActorWithWrapper {
445445
@WrapperOnActor var synced: Int = 0
446446
// expected-note@-1 3{{property declared here}}
447447
@WrapperWithMainActorDefaultInit var property: Int // expected-minimal-targeted-error {{call to main actor-isolated initializer 'init()' in a synchronous actor-isolated context}}
448-
// expected-complete-tns-error@-1 {{main actor-isolated default value in a actor-isolated context}}
448+
// expected-complete-tns-warning@-1 {{main actor-isolated default value in a actor-isolated context; this is an error in Swift 6}}
449449
func f() {
450450
_ = synced // expected-error{{main actor-isolated property 'synced' can not be referenced on a different actor instance}}
451451
_ = $synced // expected-error{{global actor 'SomeGlobalActor'-isolated property '$synced' can not be referenced on a different actor instance}}
@@ -561,7 +561,7 @@ struct WrapperOnUnsafeActor<Wrapped> {
561561

562562
// HasWrapperOnUnsafeActor gets an inferred @MainActor attribute.
563563
struct HasWrapperOnUnsafeActor {
564-
@WrapperOnUnsafeActor var synced: Int = 0 // expected-complete-tns-error {{global actor 'OtherGlobalActor'-isolated default value in a main actor-isolated context}}
564+
@WrapperOnUnsafeActor var synced: Int = 0 // expected-complete-tns-warning {{global actor 'OtherGlobalActor'-isolated default value in a main actor-isolated context; this is an error in Swift 6}}
565565
// expected-note @-1 3{{property declared here}}
566566
// expected-complete-tns-note @-2 3{{property declared here}}
567567

@@ -681,10 +681,10 @@ class Cutter {
681681
@SomeGlobalActor
682682
class Butter {
683683
var a = useFooInADefer() // expected-minimal-targeted-error {{call to main actor-isolated global function 'useFooInADefer()' in a synchronous global actor 'SomeGlobalActor'-isolated context}}
684-
// expected-complete-tns-error@-1 {{main actor-isolated default value in a global actor 'SomeGlobalActor'-isolated context}}
684+
// expected-complete-tns-warning@-1 {{main actor-isolated default value in a global actor 'SomeGlobalActor'-isolated context; this is an error in Swift 6}}
685685

686686
nonisolated let b = statefulThingy // expected-minimal-targeted-error {{main actor-isolated var 'statefulThingy' can not be referenced from a non-isolated context}}
687-
// expected-complete-tns-error@-1 {{main actor-isolated default value in a nonisolated context}}
687+
// expected-complete-tns-warning@-1 {{main actor-isolated default value in a nonisolated context; this is an error in Swift 6}}
688688

689689
var c: Int = {
690690
return getGlobal7()

test/Concurrency/isolated_default_arguments.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ struct S3 {
156156
}
157157

158158
struct S4 {
159-
// expected-error@+1 {{main actor-isolated default value in a nonisolated context}}
159+
// expected-warning@+1 {{main actor-isolated default value in a nonisolated context; this is an error in Swift 6}}
160160
var x: Int = requiresMainActor()
161161
}
162162

0 commit comments

Comments
 (0)