@@ -357,7 +357,7 @@ class alignas(1 << DeclAlignInBits) Decl : public ASTAllocated<Decl> {
357357 // for the inline bitfields.
358358 union { uint64_t OpaqueBits;
359359
360- SWIFT_INLINE_BITFIELD_BASE (Decl, bitmax (NumDeclKindBits,8 )+1 +1 +1 +1 +1 +1 +1 ,
360+ SWIFT_INLINE_BITFIELD_BASE (Decl, bitmax (NumDeclKindBits,8 )+1 +1 +1 +1 +1 +1 +1 + 1 + 1 + 1 + 1 ,
361361 Kind : bitmax (NumDeclKindBits,8 ),
362362
363363 // / Whether this declaration is invalid.
@@ -388,7 +388,23 @@ class alignas(1 << DeclAlignInBits) Decl : public ASTAllocated<Decl> {
388388 // / True if \c ObjCInterfaceAndImplementationRequest has been computed
389389 // / and did \em not find anything. This is the fast path where we can bail
390390 // / out without checking other caches or computing anything.
391- LacksObjCInterfaceOrImplementation : 1
391+ LacksObjCInterfaceOrImplementation : 1 ,
392+
393+ // / True if we're in the common case where the ExpandMemberAttributeMacros
394+ // / request returned an empty array.
395+ NoMemberAttributeMacros : 1 ,
396+
397+ // / True if we're in the common case where the ExpandPeerMacroRequest
398+ // / request returned an empty array.
399+ NoPeerMacros : 1 ,
400+
401+ // / True if we're in the common case where the GlobalActorAttributeRequest
402+ // / request returned a pair of null pointers.
403+ NoGlobalActorAttribute : 1 ,
404+
405+ // / True if we're in the common case where the SPIGroupsRequest
406+ // / request returned an empty array of identifiers.
407+ NoSPIGroups : 1
392408 );
393409
394410 SWIFT_INLINE_BITFIELD_FULL (PatternBindingDecl, Decl, 1 +1 +2 +16 ,
@@ -436,7 +452,7 @@ class alignas(1 << DeclAlignInBits) Decl : public ASTAllocated<Decl> {
436452 IsStatic : 1
437453 );
438454
439- SWIFT_INLINE_BITFIELD (VarDecl, AbstractStorageDecl, 2 +1 +1 +1 +1 +1 ,
455+ SWIFT_INLINE_BITFIELD (VarDecl, AbstractStorageDecl, 2 +1 +1 +1 +1 +1 + 1 + 1 ,
440456 // / Encodes whether this is a 'let' binding.
441457 Introducer : 2 ,
442458
@@ -454,7 +470,13 @@ class alignas(1 << DeclAlignInBits) Decl : public ASTAllocated<Decl> {
454470 IsPropertyWrapperBackingProperty : 1 ,
455471
456472 // / Whether this is a lazily top-level global variable from the main file.
457- IsTopLevelGlobal : 1
473+ IsTopLevelGlobal : 1 ,
474+
475+ // / Whether this variable has no attached property wrappers.
476+ NoAttachedPropertyWrappers : 1 ,
477+
478+ // / Whether this variable has no property wrapper auxiliary variables.
479+ NoPropertyWrapperAuxiliaryVariables : 1
458480 );
459481
460482 SWIFT_INLINE_BITFIELD (ParamDecl, VarDecl, 1 +2 +NumDefaultArgumentKindBits,
@@ -504,7 +526,7 @@ class alignas(1 << DeclAlignInBits) Decl : public ASTAllocated<Decl> {
504526
505527 // / Whether this function is a distributed thunk for a distributed
506528 // / function or computed property.
507- DistributedThunk: 1
529+ DistributedThunk : 1
508530 );
509531
510532 SWIFT_INLINE_BITFIELD (FuncDecl, AbstractFunctionDecl,
@@ -827,6 +849,10 @@ class alignas(1 << DeclAlignInBits) Decl : public ASTAllocated<Decl> {
827849 friend class MemberLookupTable ;
828850 friend class DeclDeserializer ;
829851 friend class RawCommentRequest ;
852+ friend class ExpandMemberAttributeMacros ;
853+ friend class ExpandPeerMacroRequest ;
854+ friend class GlobalActorAttributeRequest ;
855+ friend class SPIGroupsRequest ;
830856
831857private:
832858 llvm::PointerUnion<DeclContext *, ASTContext *> Context;
@@ -845,6 +871,38 @@ class alignas(1 << DeclAlignInBits) Decl : public ASTAllocated<Decl> {
845871 // / Directly set the invalid bit
846872 void setInvalidBit ();
847873
874+ bool hasNoMemberAttributeMacros () const {
875+ return Bits.Decl .NoMemberAttributeMacros ;
876+ }
877+
878+ void setHasNoMemberAttributeMacros () {
879+ Bits.Decl .NoMemberAttributeMacros = true ;
880+ }
881+
882+ bool hasNoPeerMacros () const {
883+ return Bits.Decl .NoPeerMacros ;
884+ }
885+
886+ void setHasNoPeerMacros () {
887+ Bits.Decl .NoPeerMacros = true ;
888+ }
889+
890+ bool hasNoGlobalActorAttribute () const {
891+ return Bits.Decl .NoGlobalActorAttribute ;
892+ }
893+
894+ void setHasNoGlobalActorAttribute () {
895+ Bits.Decl .NoGlobalActorAttribute = true ;
896+ }
897+
898+ bool hasNoSPIGroups () const {
899+ return Bits.Decl .NoSPIGroups ;
900+ }
901+
902+ void setHasNoSPIGroups () {
903+ Bits.Decl .NoSPIGroups = true ;
904+ }
905+
848906protected:
849907
850908 Decl (DeclKind kind, llvm::PointerUnion<DeclContext *, ASTContext *> context)
@@ -857,6 +915,9 @@ class alignas(1 << DeclAlignInBits) Decl : public ASTAllocated<Decl> {
857915 Bits.Decl .EscapedFromIfConfig = false ;
858916 Bits.Decl .Hoisted = false ;
859917 Bits.Decl .LacksObjCInterfaceOrImplementation = false ;
918+ Bits.Decl .NoMemberAttributeMacros = false ;
919+ Bits.Decl .NoGlobalActorAttribute = false ;
920+ Bits.Decl .NoSPIGroups = false ;
860921 }
861922
862923 // / Get the Clang node associated with this declaration.
@@ -2749,6 +2810,10 @@ class ValueDecl : public Decl {
27492810 // / allows the entity to be replaced at runtime.
27502811 unsigned isDynamic : 1 ;
27512812
2813+ // / Whether the DynamicallyReplacedDeclRequest request was evaluated and
2814+ // / output a null pointer.
2815+ unsigned noDynamicallyReplacedDecl : 1 ;
2816+
27522817 // / Whether the "isFinal" bit has been computed yet.
27532818 unsigned isFinalComputed : 1 ;
27542819
@@ -2762,6 +2827,13 @@ class ValueDecl : public Decl {
27622827 // / Whether this declaration produces an implicitly unwrapped
27632828 // / optional result.
27642829 unsigned isIUO : 1 ;
2830+
2831+ // / Whether we're in the common case where the ActorIsolationRequest
2832+ // / request returned ActorIsolation::forUnspecified().
2833+ unsigned noActorIsolation : 1 ;
2834+
2835+ // / Whether we've evaluated the ApplyAccessNoteRequest.
2836+ unsigned accessNoteApplied : 1 ;
27652837 } LazySemanticInfo = { };
27662838
27672839 friend class DynamicallyReplacedDeclRequest ;
@@ -2772,6 +2844,9 @@ class ValueDecl : public Decl {
27722844 friend class IsImplicitlyUnwrappedOptionalRequest ;
27732845 friend class InterfaceTypeRequest ;
27742846 friend class CheckRedeclarationRequest ;
2847+ friend class ActorIsolationRequest ;
2848+ friend class DynamicallyReplacedDeclRequest ;
2849+ friend class ApplyAccessNoteRequest ;
27752850 friend class Decl ;
27762851 SourceLoc getLocFromSource () const { return NameLoc; }
27772852protected:
@@ -6090,8 +6165,27 @@ enum class PropertyWrapperSynthesizedPropertyKind {
60906165// / VarDecl - 'var' and 'let' declarations.
60916166class VarDecl : public AbstractStorageDecl {
60926167 friend class NamingPatternRequest ;
6168+ friend class AttachedPropertyWrappersRequest ;
6169+ friend class PropertyWrapperAuxiliaryVariablesRequest ;
6170+
60936171 NamedPattern *NamingPattern = nullptr ;
60946172
6173+ bool hasNoAttachedPropertyWrappers () const {
6174+ return Bits.VarDecl .NoAttachedPropertyWrappers ;
6175+ }
6176+
6177+ void setHasNoAttachedPropertyWrappers () {
6178+ Bits.VarDecl .NoAttachedPropertyWrappers = true ;
6179+ }
6180+
6181+ bool hasNoPropertyWrapperAuxiliaryVariables () const {
6182+ return Bits.VarDecl .NoPropertyWrapperAuxiliaryVariables ;
6183+ }
6184+
6185+ void setHasNoPropertyWrapperAuxiliaryVariables () {
6186+ Bits.VarDecl .NoPropertyWrapperAuxiliaryVariables = true ;
6187+ }
6188+
60956189public:
60966190 enum class Introducer : uint8_t {
60976191 Let = 0 ,
@@ -7416,6 +7510,7 @@ class AbstractFunctionDecl : public GenericContext, public ValueDecl {
74167510 friend class ParseAbstractFunctionBodyRequest ;
74177511 friend class TypeCheckFunctionBodyRequest ;
74187512 friend class IsFunctionBodySkippedRequest ;
7513+ friend class LifetimeDependenceInfoRequest ;
74197514
74207515 CaptureInfo Captures;
74217516
@@ -7431,6 +7526,7 @@ class AbstractFunctionDecl : public GenericContext, public ValueDecl {
74317526 struct {
74327527 unsigned NeedsNewVTableEntryComputed : 1 ;
74337528 unsigned NeedsNewVTableEntry : 1 ;
7529+ unsigned NoLifetimeDependenceInfo : 1 ;
74347530 } LazySemanticInfo = { };
74357531
74367532 AbstractFunctionDecl (DeclKind Kind, DeclContext *Parent, DeclName Name,
0 commit comments