@@ -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