@@ -689,11 +689,9 @@ class InheritedProtocolCollector {
689
689
return ;
690
690
691
691
// / is this nominal specifically an 'actor' or 'distributed actor'?
692
- bool actorClass = false ;
693
- bool distributedActorClass = false ;
692
+ bool anyActorClass = false ;
694
693
if (auto klass = dyn_cast<ClassDecl>(nominal)) {
695
- actorClass = klass->isActor ();
696
- distributedActorClass = klass->isDistributedActor ();
694
+ anyActorClass = klass->isAnyActor ();
697
695
}
698
696
699
697
SmallPtrSet<ProtocolDecl *, 16 > handledProtocols;
@@ -729,12 +727,11 @@ class InheritedProtocolCollector {
729
727
// There is a special restriction on the Actor protocol in that
730
728
// it is only valid to conform to Actor on an 'actor' decl,
731
729
// not extensions of that 'actor'.
732
- if (actorClass &&
733
- inherited->isSpecificProtocol (KnownProtocolKind::Actor))
734
- return TypeWalker::Action::SkipNode;
735
- if (distributedActorClass &&
736
- inherited->isSpecificProtocol (KnownProtocolKind::DistributedActor))
737
- return TypeWalker::Action::SkipNode;
730
+ if (anyActorClass) {
731
+ if (inherited->isSpecificProtocol (KnownProtocolKind::Actor) ||
732
+ inherited->isSpecificProtocol (KnownProtocolKind::DistributedActor))
733
+ return TypeWalker::Action::SkipNode;
734
+ }
738
735
739
736
// Do not synthesize an extension to print a conformance to an
740
737
// invertible protocol, as their conformances are always re-inferred
0 commit comments