@@ -8,10 +8,10 @@ import Distributed
8
8
9
9
struct MissingRemoteCall : DistributedActorSystem {
10
10
// expected-error@-1{{struct 'MissingRemoteCall' is missing witness for protocol requirement 'remoteCall'}}
11
- // expected-note@-2{{protocol 'MissingRemoteCall ' requires function 'remoteCall' with signature:}}
11
+ // expected-note@-2{{protocol 'DistributedActorSystem ' requires function 'remoteCall' with signature:}}
12
12
13
13
// expected-error@-4{{struct 'MissingRemoteCall' is missing witness for protocol requirement 'remoteCallVoid'}}
14
- // expected-note@-5{{protocol 'MissingRemoteCall ' requires function 'remoteCallVoid' with signature:}}
14
+ // expected-note@-5{{protocol 'DistributedActorSystem ' requires function 'remoteCallVoid' with signature:}}
15
15
16
16
typealias ActorID = ActorAddress
17
17
typealias InvocationDecoder = FakeInvocationDecoder
@@ -102,6 +102,128 @@ struct MissingRemoteCall_missingInout_on_encoder: DistributedActorSystem {
102
102
}
103
103
}
104
104
105
+ struct RemoteCallMutating : DistributedActorSystem {
106
+ // expected-error@-1{{struct 'RemoteCallMutating' is missing witness for protocol requirement 'remoteCall'}}
107
+ // expected-note@-2{{protocol 'DistributedActorSystem' requires function 'remoteCall' with signature:}}
108
+
109
+ // expected-error@-4{{struct 'RemoteCallMutating' is missing witness for protocol requirement 'remoteCallVoid'}}
110
+ // expected-note@-5{{protocol 'DistributedActorSystem' requires function 'remoteCallVoid' with signature:}}
111
+
112
+ typealias ActorID = ActorAddress
113
+ typealias InvocationDecoder = FakeInvocationDecoder
114
+ typealias InvocationEncoder = FakeInvocationEncoder
115
+ typealias SerializationRequirement = Codable
116
+ typealias ResultHandler = FakeResultHandler
117
+
118
+ func resolve< Act> ( id: ActorID , as actorType: Act . Type )
119
+ throws -> Act ? where Act: DistributedActor {
120
+ return nil
121
+ }
122
+
123
+ func assignID< Act> ( _ actorType: Act . Type ) -> ActorID
124
+ where Act: DistributedActor {
125
+ ActorAddress ( parse: " fake://123 " )
126
+ }
127
+
128
+ func actorReady< Act> ( _ actor : Act )
129
+ where Act: DistributedActor ,
130
+ Act. ID == ActorID {
131
+ }
132
+
133
+ func resignID( _ id: ActorID ) {
134
+ }
135
+
136
+ mutating func remoteCall< Act, Err, Res> (
137
+ on actor : Act ,
138
+ target: RemoteCallTarget ,
139
+ invocation: inout InvocationEncoder ,
140
+ throwing: Err . Type ,
141
+ returning: Res . Type
142
+ ) async throws -> Res
143
+ where Act: DistributedActor ,
144
+ Act. ID == ActorID ,
145
+ Err: Error ,
146
+ Res: SerializationRequirement {
147
+ fatalError ( " NOT IMPLEMENTED \( #function) " )
148
+ }
149
+
150
+ mutating func remoteCallVoid< Act, Err> (
151
+ on actor : Act ,
152
+ target: RemoteCallTarget ,
153
+ invocation: inout InvocationEncoder ,
154
+ throwing: Err . Type
155
+ ) async throws
156
+ where Act: DistributedActor ,
157
+ Act. ID == ActorID ,
158
+ Err: Error {
159
+ fatalError ( " NOT IMPLEMENTED \( #function) " )
160
+ }
161
+
162
+ func makeInvocationEncoder( ) -> InvocationEncoder {
163
+ }
164
+ }
165
+
166
+ struct MissingRemoteCall_missingInout_on_encoder : DistributedActorSystem {
167
+ // expected-error@-1{{struct 'MissingRemoteCall_missingInout_on_encoder' is missing witness for protocol requirement 'remoteCall'}}
168
+ // expected-note@-2{{protocol 'DistributedActorSystem' requires function 'remoteCall' with signature:}}
169
+
170
+ // expected-error@-4{{struct 'MissingRemoteCall_missingInout_on_encoder' is missing witness for protocol requirement 'remoteCallVoid'}}
171
+ // expected-note@-5{{protocol 'DistributedActorSystem' requires function 'remoteCallVoid' with signature:}}
172
+
173
+ typealias ActorID = ActorAddress
174
+ typealias InvocationDecoder = FakeInvocationDecoder
175
+ typealias InvocationEncoder = FakeInvocationEncoder
176
+ typealias SerializationRequirement = Codable
177
+ typealias ResultHandler = FakeResultHandler
178
+
179
+ func resolve< Act> ( id: ActorID , as actorType: Act . Type )
180
+ throws -> Act ? where Act: DistributedActor {
181
+ return nil
182
+ }
183
+
184
+ func assignID< Act> ( _ actorType: Act . Type ) -> ActorID
185
+ where Act: DistributedActor {
186
+ ActorAddress ( parse: " fake://123 " )
187
+ }
188
+
189
+ func actorReady< Act> ( _ actor : Act )
190
+ where Act: DistributedActor ,
191
+ Act. ID == ActorID {
192
+ }
193
+
194
+ func resignID( _ id: ActorID ) {
195
+ }
196
+
197
+ func remoteCall< Act, Err, Res> (
198
+ on actor : Act ,
199
+ target: RemoteCallTarget ,
200
+ invocation: InvocationEncoder , // MISSING 'inout'
201
+ throwing: Err . Type ,
202
+ returning: Res . Type
203
+ ) async throws -> Res
204
+ where Act: DistributedActor ,
205
+ Act. ID == ActorID ,
206
+ Err: Error ,
207
+ Res: SerializationRequirement {
208
+ fatalError ( " NOT IMPLEMENTED \( #function) " )
209
+ }
210
+
211
+ func remoteCallVoid< Act, Err> (
212
+ on actor : Act ,
213
+ target: RemoteCallTarget ,
214
+ invocation: InvocationEncoder , // MISSING 'inout'
215
+ throwing: Err . Type
216
+ ) async throws
217
+ where Act: DistributedActor ,
218
+ Act. ID == ActorID ,
219
+ Err: Error {
220
+ fatalError ( " NOT IMPLEMENTED \( #function) " )
221
+ }
222
+
223
+ func makeInvocationEncoder( ) -> InvocationEncoder {
224
+ }
225
+ }
226
+
105
227
struct MissingRemoteCall_missing_makeInvocationEncoder : DistributedActorSystem {
106
228
// expected-error@-1{{type 'MissingRemoteCall_missing_makeInvocationEncoder' does not conform to protocol 'DistributedActorSystem'}}
107
229
@@ -160,10 +282,10 @@ struct MissingRemoteCall_missing_makeInvocationEncoder: DistributedActorSystem {
160
282
161
283
struct Error_wrongReturn : DistributedActorSystem {
162
284
// expected-error@-1{{struct 'Error_wrongReturn' is missing witness for protocol requirement 'remoteCall'}}
163
- // expected-note@-2{{protocol 'Error_wrongReturn ' requires function 'remoteCall' with signature:}}
285
+ // expected-note@-2{{protocol 'DistributedActorSystem ' requires function 'remoteCall' with signature:}}
164
286
165
287
// expected-error@-4{{struct 'Error_wrongReturn' is missing witness for protocol requirement 'remoteCallVoid'}}
166
- // expected-note@-5{{protocol 'Error_wrongReturn ' requires function 'remoteCallVoid' with signature:}}
288
+ // expected-note@-5{{protocol 'DistributedActorSystem ' requires function 'remoteCallVoid' with signature:}}
167
289
168
290
typealias ActorID = ActorAddress
169
291
typealias InvocationDecoder = FakeInvocationDecoder
@@ -235,10 +357,10 @@ struct Error_wrongReturn: DistributedActorSystem {
235
357
236
358
struct BadRemoteCall_param : DistributedActorSystem {
237
359
// expected-error@-1{{struct 'BadRemoteCall_param' is missing witness for protocol requirement 'remoteCall'}}
238
- // expected-note@-2{{protocol 'BadRemoteCall_param ' requires function 'remoteCall' with signature:}}
360
+ // expected-note@-2{{protocol 'DistributedActorSystem ' requires function 'remoteCall' with signature:}}
239
361
240
362
// expected-error@-4{{struct 'BadRemoteCall_param' is missing witness for protocol requirement 'remoteCallVoid'}}
241
- // expected-note@-5{{protocol 'BadRemoteCall_param ' requires function 'remoteCallVoid' with signature:}}
363
+ // expected-note@-5{{protocol 'DistributedActorSystem ' requires function 'remoteCallVoid' with signature:}}
242
364
243
365
typealias ActorID = ActorAddress
244
366
typealias InvocationDecoder = FakeInvocationDecoder
@@ -345,7 +467,7 @@ public struct BadRemoteCall_notPublic: DistributedActorSystem {
345
467
346
468
public struct BadRemoteCall_badResultConformance : DistributedActorSystem {
347
469
// expected-error@-1{{struct 'BadRemoteCall_badResultConformance' is missing witness for protocol requirement 'remoteCall'}}
348
- // expected-note@-2{{protocol 'BadRemoteCall_badResultConformance ' requires function 'remoteCall' with signature:}}
470
+ // expected-note@-2{{protocol 'DistributedActorSystem ' requires function 'remoteCall' with signature:}}
349
471
350
472
public typealias ActorID = ActorAddress
351
473
public typealias InvocationDecoder = PublicFakeInvocationDecoder
@@ -452,7 +574,7 @@ struct BadRemoteCall_largeSerializationRequirement: DistributedActorSystem {
452
574
453
575
struct BadRemoteCall_largeSerializationRequirementSlightlyOffInDefinition : DistributedActorSystem {
454
576
// expected-error@-1{{struct 'BadRemoteCall_largeSerializationRequirementSlightlyOffInDefinition' is missing witness for protocol requirement 'remoteCall'}}
455
- // expected-note@-2{{protocol 'BadRemoteCall_largeSerializationRequirementSlightlyOffInDefinition ' requires function 'remoteCall' with signature:}}
577
+ // expected-note@-2{{protocol 'DistributedActorSystem ' requires function 'remoteCall' with signature:}}
456
578
457
579
typealias ActorID = ActorAddress
458
580
typealias InvocationDecoder = LargeSerializationReqFakeInvocationDecoder
@@ -608,7 +730,7 @@ public struct PublicFakeInvocationEncoder: DistributedTargetInvocationEncoder {
608
730
609
731
struct FakeInvocationEncoder_missing_recordArgument : DistributedTargetInvocationEncoder {
610
732
//expected-error@-1{{struct 'FakeInvocationEncoder_missing_recordArgument' is missing witness for protocol requirement 'recordArgument'}}
611
- //expected-note@-2{{protocol 'FakeInvocationEncoder_missing_recordArgument ' requires function 'recordArgument' with signature:}}
733
+ //expected-note@-2{{protocol 'DistributedTargetInvocationEncoder ' requires function 'recordArgument' with signature:}}
612
734
typealias SerializationRequirement = Codable
613
735
614
736
mutating func recordGenericSubstitution< T> ( _ type: T . Type ) throws { }
@@ -620,7 +742,7 @@ struct FakeInvocationEncoder_missing_recordArgument: DistributedTargetInvocation
620
742
621
743
struct FakeInvocationEncoder_missing_recordArgument2 : DistributedTargetInvocationEncoder {
622
744
//expected-error@-1{{struct 'FakeInvocationEncoder_missing_recordArgument2' is missing witness for protocol requirement 'recordArgument'}}
623
- //expected-note@-2{{protocol 'FakeInvocationEncoder_missing_recordArgument2 ' requires function 'recordArgument' with signature:}}
745
+ //expected-note@-2{{protocol 'DistributedTargetInvocationEncoder ' requires function 'recordArgument' with signature:}}
624
746
typealias SerializationRequirement = Codable
625
747
626
748
mutating func recordGenericSubstitution< T> ( _ type: T . Type ) throws { }
@@ -632,7 +754,7 @@ struct FakeInvocationEncoder_missing_recordArgument2: DistributedTargetInvocatio
632
754
633
755
struct FakeInvocationEncoder_missing_recordReturnType : DistributedTargetInvocationEncoder {
634
756
//expected-error@-1{{struct 'FakeInvocationEncoder_missing_recordReturnType' is missing witness for protocol requirement 'recordReturnType'}}
635
- //expected-note@-2{{protocol 'FakeInvocationEncoder_missing_recordReturnType ' requires function 'recordReturnType' with signature:}}
757
+ //expected-note@-2{{protocol 'DistributedTargetInvocationEncoder ' requires function 'recordReturnType' with signature:}}
636
758
typealias SerializationRequirement = Codable
637
759
638
760
mutating func recordGenericSubstitution< T> ( _ type: T . Type ) throws { }
@@ -655,7 +777,7 @@ struct FakeInvocationEncoder_missing_recordErrorType: DistributedTargetInvocatio
655
777
656
778
struct FakeInvocationEncoder_recordArgument_wrongType : DistributedTargetInvocationEncoder {
657
779
//expected-error@-1{{struct 'FakeInvocationEncoder_recordArgument_wrongType' is missing witness for protocol requirement 'recordArgument'}}
658
- //expected-note@-2{{protocol 'FakeInvocationEncoder_recordArgument_wrongType ' requires function 'recordArgument' with signature:}}
780
+ //expected-note@-2{{protocol 'DistributedTargetInvocationEncoder ' requires function 'recordArgument' with signature:}}
659
781
typealias SerializationRequirement = Codable
660
782
661
783
mutating func recordGenericSubstitution< T> ( _ type: T . Type ) throws { }
@@ -668,7 +790,7 @@ struct FakeInvocationEncoder_recordArgument_wrongType: DistributedTargetInvocati
668
790
}
669
791
struct FakeInvocationEncoder_recordArgument_missingMutating : DistributedTargetInvocationEncoder {
670
792
//expected-error@-1{{struct 'FakeInvocationEncoder_recordArgument_missingMutating' is missing witness for protocol requirement 'recordArgument'}}
671
- //expected-note@-2{{protocol 'FakeInvocationEncoder_recordArgument_missingMutating ' requires function 'recordArgument' with signature:}}
793
+ //expected-note@-2{{protocol 'DistributedTargetInvocationEncoder ' requires function 'recordArgument' with signature:}}
672
794
typealias SerializationRequirement = Codable
673
795
674
796
mutating func recordGenericSubstitution< T> ( _ type: T . Type ) throws { }
@@ -680,7 +802,7 @@ struct FakeInvocationEncoder_recordArgument_missingMutating: DistributedTargetIn
680
802
681
803
struct FakeInvocationEncoder_recordResultType_wrongType : DistributedTargetInvocationEncoder {
682
804
//expected-error@-1{{struct 'FakeInvocationEncoder_recordResultType_wrongType' is missing witness for protocol requirement 'recordReturnType'}}
683
- //expected-note@-2{{protocol 'FakeInvocationEncoder_recordResultType_wrongType ' requires function 'recordReturnType' with signature:}}
805
+ //expected-note@-2{{protocol 'DistributedTargetInvocationEncoder ' requires function 'recordReturnType' with signature:}}
684
806
typealias SerializationRequirement = Codable
685
807
686
808
mutating func recordGenericSubstitution< T> ( _ type: T . Type ) throws { }
@@ -757,7 +879,7 @@ public final class PublicFakeInvocationDecoder_badNotPublic: DistributedTargetIn
757
879
758
880
final class PublicFakeInvocationDecoder_badBadProtoRequirement : DistributedTargetInvocationDecoder {
759
881
// expected-error@-1{{class 'PublicFakeInvocationDecoder_badBadProtoRequirement' is missing witness for protocol requirement 'decodeNextArgument'}}
760
- // expected-note@-2{{protocol 'PublicFakeInvocationDecoder_badBadProtoRequirement ' requires function 'decodeNextArgument' with signature:}}
882
+ // expected-note@-2{{protocol 'DistributedTargetInvocationDecoder ' requires function 'decodeNextArgument' with signature:}}
761
883
typealias SerializationRequirement = Codable
762
884
763
885
func decodeGenericSubstitutions( ) throws -> [ Any . Type ] { [ ] }
@@ -809,7 +931,7 @@ struct LargeSerializationReqFakeInvocationResultHandler: DistributedTargetInvoca
809
931
810
932
struct BadResultHandler_missingOnReturn : DistributedTargetInvocationResultHandler {
811
933
// expected-error@-1{{struct 'BadResultHandler_missingOnReturn' is missing witness for protocol requirement 'onReturn'}}
812
- // expected-note@-2{{protocol 'BadResultHandler_missingOnReturn ' requires function 'onReturn' with signature:}}
934
+ // expected-note@-2{{protocol 'DistributedTargetInvocationResultHandler ' requires function 'onReturn' with signature:}}
813
935
typealias SerializationRequirement = Codable
814
936
815
937
// func onReturn<Res: SerializationRequirement>(value: Res) async throws {} // MISSING
@@ -819,7 +941,7 @@ struct BadResultHandler_missingOnReturn: DistributedTargetInvocationResultHandle
819
941
820
942
struct BadResultHandler_missingRequirement : DistributedTargetInvocationResultHandler {
821
943
// expected-error@-1{{struct 'BadResultHandler_missingRequirement' is missing witness for protocol requirement 'onReturn'}}
822
- // expected-note@-2{{protocol 'BadResultHandler_missingRequirement ' requires function 'onReturn' with signature:}}
944
+ // expected-note@-2{{protocol 'DistributedTargetInvocationResultHandler ' requires function 'onReturn' with signature:}}
823
945
typealias SerializationRequirement = Codable
824
946
825
947
func onReturn< Success> ( value: Success ) async throws { } // MISSING : Codable
@@ -828,8 +950,8 @@ struct BadResultHandler_missingRequirement: DistributedTargetInvocationResultHan
828
950
}
829
951
830
952
struct BadResultHandler_mutatingButShouldNotBe : DistributedTargetInvocationResultHandler {
831
- // expected-error@-1{{struct 'BadResultHandler_missingRequirement ' is missing witness for protocol requirement 'onReturn'}}
832
- // expected-note@-2{{protocol 'BadResultHandler_missingRequirement ' requires function 'onReturn' with signature:}}
953
+ // expected-error@-1{{struct 'BadResultHandler_mutatingButShouldNotBe ' is missing witness for protocol requirement 'onReturn'}}
954
+ // expected-note@-2{{protocol 'DistributedTargetInvocationResultHandler ' requires function 'onReturn' with signature:}}
833
955
typealias SerializationRequirement = Codable
834
956
835
957
mutating func onReturn< Success: Codable > ( value: Success ) async throws { } // WRONG: can't be mutating
0 commit comments