You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
// ok, since all fields are initialized, the constructors can be synthesized
13
+
// ok, since all fields are initialized, the constructor can be synthesized
14
14
}
15
15
16
-
// TODO: test all the FIXITs in this file
16
+
// TODO(distributed): test all the FIXITs in this file
17
17
18
18
@available(SwiftStdlib 5.5,*)
19
19
distributedactorBad1{
20
20
init(){
21
-
// expected-error@-1 {{'distributed actor' initializer 'init()' must be 'convenience' initializer. Distributed actors have an implicitly synthesized designated 'init(transport:)' local-initializer, which other initializers must delegate to}}
22
-
// expected-error@-2 {{'distributed actor' initializer 'init()' must (directly or indirectly) delegate to 'init(transport:)}}
23
-
}
24
-
}
25
-
26
-
@available(SwiftStdlib 5.5,*)
27
-
distributedactorBad11{
28
-
convenienceinit(){
29
-
// expected-error@-1 {{'distributed actor' initializer 'init()' must (directly or indirectly) delegate to 'init(transport:)'}}
21
+
// expected-error@-1 {{designated distributed actor initializer 'init()' is missing required ActorTransport parameter}}
30
22
}
31
23
}
32
24
33
25
@available(SwiftStdlib 5.5,*)
34
26
distributedactorBad12{
35
27
init(x:String){
36
-
// expected-error@-1 {{'distributed actor' initializer 'init(x:)' must be 'convenience' initializer. Distributed actors have an implicitly synthesized designated 'init(transport:)' local-initializer, which other initializers must delegate to}}
37
-
// expected-error@-2 {{'distributed actor' initializer 'init(x:)' must (directly or indirectly) delegate to 'init(transport:)}}
28
+
// expected-error@-1 {{designated distributed actor initializer 'init(x:)' is missing required ActorTransport parameter}}
38
29
}
39
30
}
40
31
41
32
@available(SwiftStdlib 5.5,*)
42
33
distributedactorOK2{
43
34
varx:Int
44
35
45
-
convenienceinit(x:Int, transport:ActorTransport){
46
-
self.init(transport: transport)
36
+
init(x:Int, transport:ActorTransport){ // ok
47
37
self.x = x
48
38
}
49
39
}
50
40
51
41
@available(SwiftStdlib 5.5,*)
52
42
distributedactorBad2{
53
-
varx:Int
43
+
varx:Int=1
54
44
55
-
convenienceinit(x:Int, transport:ActorTransport){
56
-
self.init(transport: transport)
57
-
self.x = x
45
+
init(transport:ActorTransport, too many:ActorTransport){
46
+
// expected-error@-1{{designated distributed actor initializer 'init(transport:too:)' must accept exactly one ActorTransport parameter, found 2}}
58
47
}
59
48
}
60
49
61
50
@available(SwiftStdlib 5.5,*)
62
-
distributedactorBad3{
51
+
distributedactorOK3{
63
52
varx:Int
64
53
65
-
convenienceinit(y:Int, transport:ActorTransport){
66
-
// expected-error@-1 {{'distributed actor' initializer 'init(y:transport:)' must (directly or indirectly) delegate to 'init(transport:)'}}
67
-
// forgot to delegate to init(transport:)
54
+
init(y:Int, transport:ActorTransport){
68
55
self.x = y
69
56
}
70
57
}
71
58
72
59
@available(SwiftStdlib 5.5,*)
73
60
distributedactorOKMulti{
74
-
// @derived init(transport:)
75
61
76
62
convenienceinit(y:Int, transport:ActorTransport){ // ok
// expected-error@-1 {{'distributed actor' initializer 'init(any:id:transport:)' cannot delegate to resolve-initializer 'init(resolve:using:)', as it may result resolving a storageless proxy instance}}
110
-
// expected-error@-2 {{'distributed actor' initializer 'init(any:id:transport:)' must (directly or indirectly) delegate to 'init(transport:)'}}
111
-
tryself.init(resolve: id, using: transport) // TODO: suggest removing this call, since it is illegal
112
-
}
113
-
}
114
-
115
-
@available(SwiftStdlib 5.5,*)
116
-
distributedactorBadRedeclare1{ // expected-error {{type 'BadRedeclare1' does not conform to protocol 'DistributedActor'}}
117
-
convenienceinit(transport:ActorTransport){}
118
-
// expected-error@-1 {{'distributed actor' local-initializer 'init(transport:)' cannot be implemented explicitly}}
119
-
// expected-error@-2 {{invalid redeclaration of synthesized 'init(transport:)'}}
120
-
// expected-error@-3 {{invalid redeclaration of synthesized initializer 'init(transport:)'}}
121
-
// expected-note@-4 {{candidate exactly matches}}
122
-
}
123
-
124
-
@available(SwiftStdlib 5.5,*)
125
-
distributedactorBadRedeclare11{ // expected-error {{type 'BadRedeclare11' does not conform to protocol 'DistributedActor'}}
126
-
convenienceinit(transport xxx:ActorTransport){}
127
-
// expected-error@-1 {{'distributed actor' local-initializer 'init(transport:)' cannot be implemented explicitly}}
128
-
// expected-error@-2 {{invalid redeclaration of synthesized 'init(transport:)'}}
129
-
// expected-error@-3 {{invalid redeclaration of synthesized initializer 'init(transport:)'}}
130
-
// expected-note@-4 {{candidate exactly matches}}
131
-
}
132
-
133
-
@available(SwiftStdlib 5.5,*)
134
-
distributedactorBadRedeclare2{ // expected-error {{type 'BadRedeclare2' does not conform to protocol 'DistributedActor'}}
135
-
convenienceinit(resolve id:AnyActorIdentity, using transport:ActorTransport){}
136
-
// expected-error@-1 {{'distributed actor' resolve-initializer 'init(resolve:using:)' cannot be implemented explicitly}}
137
-
// expected-note@-2 {{candidate exactly matches}}
138
-
// expected-error@-3 {{invalid redeclaration of synthesized 'init(resolve:using:)'}}
139
-
// expected-error@-4 {{invalid redeclaration of synthesized initializer 'init(resolve:using:)'}}
140
-
}
141
-
142
-
@available(SwiftStdlib 5.5,*)
143
-
distributedactorBadRedeclare21{ //expected-error {{type 'BadRedeclare21' does not conform to protocol 'DistributedActor'}}
144
-
convenienceinit(resolve xxx:AnyActorIdentity, using yyy:ActorTransport){}
145
-
// expected-error@-1 {{'distributed actor' resolve-initializer 'init(resolve:using:)' cannot be implemented explicitly}}
146
-
// expected-note@-2 {{candidate exactly matches}}
147
-
// expected-error@-3 {{invalid redeclaration of synthesized 'init(resolve:using:)'}}
148
-
// expected-error@-4 {{invalid redeclaration of synthesized initializer 'init(resolve:using:)'}}
149
-
}
150
-
151
-
@available(SwiftStdlib 5.5,*)
152
-
distributedactorBadRedeclare22{ //expected-error {{type 'BadRedeclare22' does not conform to protocol 'DistributedActor'}}
153
-
convenienceinit(resolve:AnyActorIdentity, using yyy:ActorTransport)throws{}
154
-
// expected-error@-1 {{'distributed actor' resolve-initializer 'init(resolve:using:)' cannot be implemented explicitly}}
155
-
// expected-note@-2 {{candidate exactly matches}}
156
-
// expected-error@-3 {{invalid redeclaration of synthesized 'init(resolve:using:)'}}
157
-
// expected-error@-4 {{invalid redeclaration of synthesized initializer 'init(resolve:using:)'}}
0 commit comments