@@ -488,8 +488,10 @@ bool AbstractFunctionDecl::isDistributedActorSystemRemoteCall(bool isVoidReturn)
488488 }
489489
490490 // === Must be declared in a 'DistributedActorSystem' conforming type
491- ProtocolDecl *systemProto =
492- C.getDistributedActorSystemDecl ();
491+ ProtocolDecl *systemProto = C.getDistributedActorSystemDecl ();
492+ if (!systemProto) {
493+ return false ;
494+ }
493495
494496 auto systemNominal = DC->getSelfNominalTypeDecl ();
495497 auto distSystemConformance = lookupConformance (
@@ -794,6 +796,9 @@ AbstractFunctionDecl::isDistributedTargetInvocationEncoderRecordArgument() const
794796 // === Must be declared in a 'DistributedTargetInvocationEncoder' conforming type
795797 ProtocolDecl *encoderProto =
796798 C.getProtocol (KnownProtocolKind::DistributedTargetInvocationEncoder);
799+ if (!encoderProto) {
800+ return false ;
801+ }
797802
798803 auto encoderNominal = getDeclContext ()->getSelfNominalTypeDecl ();
799804 auto protocolConformance = lookupConformance (
@@ -925,6 +930,9 @@ AbstractFunctionDecl::isDistributedTargetInvocationEncoderRecordReturnType() con
925930 // === Must be declared in a 'DistributedTargetInvocationEncoder' conforming type
926931 ProtocolDecl *encoderProto =
927932 C.getProtocol (KnownProtocolKind::DistributedTargetInvocationEncoder);
933+ if (!encoderProto) {
934+ return false ;
935+ }
928936
929937 auto encoderNominal = getDeclContext ()->getSelfNominalTypeDecl ();
930938 auto protocolConformance = lookupConformance (
@@ -1051,6 +1059,9 @@ AbstractFunctionDecl::isDistributedTargetInvocationEncoderRecordErrorType() cons
10511059 // === Must be declared in a 'DistributedTargetInvocationEncoder' conforming type
10521060 ProtocolDecl *encoderProto =
10531061 C.getProtocol (KnownProtocolKind::DistributedTargetInvocationEncoder);
1062+ if (!encoderProto) {
1063+ return false ;
1064+ }
10541065
10551066 auto encoderNominal = getDeclContext ()->getSelfNominalTypeDecl ();
10561067 auto protocolConformance = lookupConformance (
@@ -1158,7 +1169,9 @@ AbstractFunctionDecl::isDistributedTargetInvocationDecoderDecodeNextArgument() c
11581169 // === Must be declared in a 'DistributedTargetInvocationEncoder' conforming type
11591170 ProtocolDecl *decoderProto =
11601171 C.getProtocol (KnownProtocolKind::DistributedTargetInvocationDecoder);
1161-
1172+ if (!decoderProto) {
1173+ return false ;
1174+ }
11621175 auto decoderNominal = getDeclContext ()->getSelfNominalTypeDecl ();
11631176 auto protocolConformance = lookupConformance (
11641177 decoderNominal->getDeclaredInterfaceType (), decoderProto);
@@ -1251,6 +1264,9 @@ AbstractFunctionDecl::isDistributedTargetInvocationResultHandlerOnReturn() const
12511264 // === Must be declared in a 'DistributedTargetInvocationEncoder' conforming type
12521265 ProtocolDecl *decoderProto =
12531266 C.getProtocol (KnownProtocolKind::DistributedTargetInvocationResultHandler);
1267+ if (!decoderProto) {
1268+ return false ;
1269+ }
12541270
12551271 auto decoderNominal = getDeclContext ()->getSelfNominalTypeDecl ();
12561272 auto protocolConformance = lookupConformance (
0 commit comments