@@ -73,7 +73,7 @@ setExpectedExecutorForParameterIsolation(SILGenFunction &SGF,
73
73
74
74
// If we have caller isolation inheriting... just grab from our isolated
75
75
// argument.
76
- if (actorIsolation.isNonisolated () ) {
76
+ if (actorIsolation.getKind () == ActorIsolation::CallerIsolationInheriting ) {
77
77
if (auto *isolatedArg = SGF.F .maybeGetIsolatedArgument ()) {
78
78
ManagedValue isolatedMV;
79
79
if (isolatedArg->getOwnershipKind () == OwnershipKind::Guaranteed) {
@@ -111,6 +111,7 @@ void SILGenFunction::emitExpectedExecutorProlog() {
111
111
case ActorIsolation::Nonisolated:
112
112
case ActorIsolation::NonisolatedUnsafe:
113
113
case ActorIsolation::Unspecified:
114
+ case ActorIsolation::CallerIsolationInheriting:
114
115
return false ;
115
116
116
117
case ActorIsolation::Erased:
@@ -164,6 +165,8 @@ void SILGenFunction::emitExpectedExecutorProlog() {
164
165
auto actorIsolation = getActorIsolation (funcDecl);
165
166
switch (actorIsolation.getKind ()) {
166
167
case ActorIsolation::Unspecified:
168
+ case ActorIsolation::Nonisolated:
169
+ case ActorIsolation::NonisolatedUnsafe:
167
170
case ActorIsolation::Concurrent:
168
171
case ActorIsolation::ConcurrentUnsafe:
169
172
break ;
@@ -188,8 +191,7 @@ void SILGenFunction::emitExpectedExecutorProlog() {
188
191
break ;
189
192
}
190
193
191
- case ActorIsolation::Nonisolated:
192
- case ActorIsolation::NonisolatedUnsafe:
194
+ case ActorIsolation::CallerIsolationInheriting:
193
195
assert (F.isAsync ());
194
196
setExpectedExecutorForParameterIsolation (*this , actorIsolation);
195
197
break ;
@@ -210,6 +212,7 @@ void SILGenFunction::emitExpectedExecutorProlog() {
210
212
case ActorIsolation::NonisolatedUnsafe:
211
213
case ActorIsolation::Concurrent:
212
214
case ActorIsolation::ConcurrentUnsafe:
215
+ case ActorIsolation::CallerIsolationInheriting:
213
216
break ;
214
217
215
218
case ActorIsolation::Erased:
@@ -639,6 +642,7 @@ SILGenFunction::emitClosureIsolation(SILLocation loc, SILDeclRef constant,
639
642
case ActorIsolation::NonisolatedUnsafe:
640
643
case ActorIsolation::Concurrent:
641
644
case ActorIsolation::ConcurrentUnsafe:
645
+ case ActorIsolation::CallerIsolationInheriting:
642
646
return emitNonIsolatedIsolation (loc);
643
647
644
648
case ActorIsolation::Erased:
@@ -692,6 +696,7 @@ SILGenFunction::emitExecutor(SILLocation loc, ActorIsolation isolation,
692
696
case ActorIsolation::NonisolatedUnsafe:
693
697
case ActorIsolation::Concurrent:
694
698
case ActorIsolation::ConcurrentUnsafe:
699
+ case ActorIsolation::CallerIsolationInheriting:
695
700
return std::nullopt ;
696
701
697
702
case ActorIsolation::Erased:
0 commit comments