@@ -73,7 +73,7 @@ setExpectedExecutorForParameterIsolation(SILGenFunction &SGF,
7373
7474 // If we have caller isolation inheriting... just grab from our isolated
7575 // argument.
76- if (actorIsolation.isNonisolated () ) {
76+ if (actorIsolation.getKind () == ActorIsolation::CallerIsolationInheriting ) {
7777 if (auto *isolatedArg = SGF.F .maybeGetIsolatedArgument ()) {
7878 ManagedValue isolatedMV;
7979 if (isolatedArg->getOwnershipKind () == OwnershipKind::Guaranteed) {
@@ -111,6 +111,7 @@ void SILGenFunction::emitExpectedExecutorProlog() {
111111 case ActorIsolation::Nonisolated:
112112 case ActorIsolation::NonisolatedUnsafe:
113113 case ActorIsolation::Unspecified:
114+ case ActorIsolation::CallerIsolationInheriting:
114115 return false ;
115116
116117 case ActorIsolation::Erased:
@@ -164,6 +165,8 @@ void SILGenFunction::emitExpectedExecutorProlog() {
164165 auto actorIsolation = getActorIsolation (funcDecl);
165166 switch (actorIsolation.getKind ()) {
166167 case ActorIsolation::Unspecified:
168+ case ActorIsolation::Nonisolated:
169+ case ActorIsolation::NonisolatedUnsafe:
167170 case ActorIsolation::Concurrent:
168171 case ActorIsolation::ConcurrentUnsafe:
169172 break ;
@@ -188,8 +191,7 @@ void SILGenFunction::emitExpectedExecutorProlog() {
188191 break ;
189192 }
190193
191- case ActorIsolation::Nonisolated:
192- case ActorIsolation::NonisolatedUnsafe:
194+ case ActorIsolation::CallerIsolationInheriting:
193195 assert (F.isAsync ());
194196 setExpectedExecutorForParameterIsolation (*this , actorIsolation);
195197 break ;
@@ -210,6 +212,7 @@ void SILGenFunction::emitExpectedExecutorProlog() {
210212 case ActorIsolation::NonisolatedUnsafe:
211213 case ActorIsolation::Concurrent:
212214 case ActorIsolation::ConcurrentUnsafe:
215+ case ActorIsolation::CallerIsolationInheriting:
213216 break ;
214217
215218 case ActorIsolation::Erased:
@@ -639,6 +642,7 @@ SILGenFunction::emitClosureIsolation(SILLocation loc, SILDeclRef constant,
639642 case ActorIsolation::NonisolatedUnsafe:
640643 case ActorIsolation::Concurrent:
641644 case ActorIsolation::ConcurrentUnsafe:
645+ case ActorIsolation::CallerIsolationInheriting:
642646 return emitNonIsolatedIsolation (loc);
643647
644648 case ActorIsolation::Erased:
@@ -692,6 +696,7 @@ SILGenFunction::emitExecutor(SILLocation loc, ActorIsolation isolation,
692696 case ActorIsolation::NonisolatedUnsafe:
693697 case ActorIsolation::Concurrent:
694698 case ActorIsolation::ConcurrentUnsafe:
699+ case ActorIsolation::CallerIsolationInheriting:
695700 return std::nullopt ;
696701
697702 case ActorIsolation::Erased:
0 commit comments