@@ -131,6 +131,8 @@ class alignas(1 << DeclAlignInBits) ProtocolConformance
131131 // / conformance definition.
132132 Type ConformingType;
133133
134+ friend class ConformanceIsolationRequest ;
135+
134136protected:
135137 // clang-format off
136138 //
@@ -139,9 +141,13 @@ class alignas(1 << DeclAlignInBits) ProtocolConformance
139141 union { uint64_t OpaqueBits;
140142
141143 SWIFT_INLINE_BITFIELD_BASE (ProtocolConformance,
144+ 1 +
142145 bitmax (NumProtocolConformanceKindBits, 8 ),
143146 // / The kind of protocol conformance.
144- Kind : bitmax (NumProtocolConformanceKindBits, 8 )
147+ Kind : bitmax (NumProtocolConformanceKindBits, 8 ),
148+
149+ // / Whether the computed actor isolation is nonisolated.
150+ IsComputedNonisolated : 1
145151 );
146152
147153 SWIFT_INLINE_BITFIELD_EMPTY (RootProtocolConformance, ProtocolConformance);
@@ -161,9 +167,6 @@ class alignas(1 << DeclAlignInBits) ProtocolConformance
161167 // / this conformance.
162168 IsPreconcurrencyEffectful : 1 ,
163169
164- // / Whether the computed actor isolation is nonisolated.
165- IsComputedNonisolated : 1 ,
166-
167170 // / Whether there is an explicit global actor specified for this
168171 // / conformance.
169172 HasExplicitGlobalActor : 1 ,
@@ -198,6 +201,15 @@ class alignas(1 << DeclAlignInBits) ProtocolConformance
198201 ProtocolConformance (ProtocolConformanceKind kind, Type conformingType)
199202 : ConformingType (conformingType) {
200203 Bits.ProtocolConformance .Kind = unsigned (kind);
204+ Bits.ProtocolConformance .IsComputedNonisolated = false ;
205+ }
206+
207+ bool isComputedNonisolated () const {
208+ return Bits.ProtocolConformance .IsComputedNonisolated ;
209+ }
210+
211+ void setComputedNonnisolated (bool value = true ) {
212+ Bits.ProtocolConformance .IsComputedNonisolated = value;
201213 }
202214
203215public:
@@ -587,14 +599,6 @@ class NormalProtocolConformance : public RootProtocolConformance,
587599 // Record the explicitly-specified global actor isolation.
588600 void setExplicitGlobalActorIsolation (TypeExpr *typeExpr);
589601
590- bool isComputedNonisolated () const {
591- return Bits.NormalProtocolConformance .IsComputedNonisolated ;
592- }
593-
594- void setComputedNonnisolated (bool value = true ) {
595- Bits.NormalProtocolConformance .IsComputedNonisolated = value;
596- }
597-
598602public:
599603 NormalProtocolConformance (Type conformingType, ProtocolDecl *protocol,
600604 SourceLoc loc, DeclContext *dc,
@@ -618,7 +622,6 @@ class NormalProtocolConformance : public RootProtocolConformance,
618622 Bits.NormalProtocolConformance .HasComputedAssociatedConformances = false ;
619623 Bits.NormalProtocolConformance .SourceKind =
620624 unsigned (ConformanceEntryKind::Explicit);
621- Bits.NormalProtocolConformance .IsComputedNonisolated = false ;
622625 Bits.NormalProtocolConformance .HasExplicitGlobalActor = false ;
623626 setExplicitGlobalActorIsolation (options.getGlobalActorIsolationType ());
624627 }
0 commit comments