@@ -600,7 +600,7 @@ class alignas(1 << DeclAlignInBits) Decl : public ASTAllocated<Decl> {
600600 IsComputingSemanticMembers : 1
601601 );
602602
603- SWIFT_INLINE_BITFIELD_FULL (ProtocolDecl, NominalTypeDecl, 1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +8 ,
603+ SWIFT_INLINE_BITFIELD_FULL (ProtocolDecl, NominalTypeDecl, 1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 +1 + 8 ,
604604 // / Whether the \c RequiresClass bit is valid.
605605 RequiresClassValid : 1 ,
606606
@@ -624,9 +624,12 @@ class alignas(1 << DeclAlignInBits) Decl : public ASTAllocated<Decl> {
624624 // / because they could not be imported from Objective-C).
625625 HasMissingRequirements : 1 ,
626626
627- // / Whether we've computed the inherited protocols list yet .
627+ // / Whether we've computed the InheritedProtocolsRequest .
628628 InheritedProtocolsValid : 1 ,
629629
630+ // / Whether we've computed the AllInheritedProtocolsRequest.
631+ AllInheritedProtocolsValid : 1 ,
632+
630633 // / Whether we have computed a requirement signature.
631634 HasRequirementSignature : 1 ,
632635
@@ -5191,6 +5194,7 @@ class ProtocolDecl final : public NominalTypeDecl {
51915194
51925195 ArrayRef<PrimaryAssociatedTypeName> PrimaryAssociatedTypeNames;
51935196 ArrayRef<ProtocolDecl *> InheritedProtocols;
5197+ ArrayRef<ProtocolDecl *> AllInheritedProtocols;
51945198 ArrayRef<AssociatedTypeDecl *> AssociatedTypes;
51955199 ArrayRef<ValueDecl *> ProtocolRequirements;
51965200
@@ -5267,6 +5271,7 @@ class ProtocolDecl final : public NominalTypeDecl {
52675271 friend class ExistentialConformsToSelfRequest ;
52685272 friend class HasSelfOrAssociatedTypeRequirementsRequest ;
52695273 friend class InheritedProtocolsRequest ;
5274+ friend class AllInheritedProtocolsRequest ;
52705275 friend class PrimaryAssociatedTypesRequest ;
52715276 friend class ProtocolRequirementsRequest ;
52725277
@@ -5406,6 +5411,13 @@ class ProtocolDecl final : public NominalTypeDecl {
54065411 Bits.ProtocolDecl .InheritedProtocolsValid = true ;
54075412 }
54085413
5414+ bool areAllInheritedProtocolsValid () const {
5415+ return Bits.ProtocolDecl .AllInheritedProtocolsValid ;
5416+ }
5417+ void setAllInheritedProtocolsValid () {
5418+ Bits.ProtocolDecl .AllInheritedProtocolsValid = true ;
5419+ }
5420+
54095421 bool areProtocolRequirementsValid () const {
54105422 return Bits.ProtocolDecl .ProtocolRequirementsValid ;
54115423 }
0 commit comments