File tree Expand file tree Collapse file tree 2 files changed +11
-7
lines changed Expand file tree Collapse file tree 2 files changed +11
-7
lines changed Original file line number Diff line number Diff line change @@ -6577,6 +6577,13 @@ class SILVerifier : public SILVerifierBase<SILVerifier> {
6577
6577
SILResultInfo::IsTransferring);
6578
6578
})),
6579
6579
" transferring result means all results are transferring" );
6580
+
6581
+ // We should only ever have a single sil_isolated parameter.
6582
+ require (1 >= std::count_if (FTy->getParameters ().begin (), FTy->getParameters ().end (),
6583
+ [](const SILParameterInfo ¶meterInfo) {
6584
+ return parameterInfo.hasOption (SILParameterInfo::Isolated);
6585
+ }),
6586
+ " Should only ever be isolated to a single parameter" );
6580
6587
}
6581
6588
6582
6589
struct VerifyFlowSensitiveRulesDetails {
Original file line number Diff line number Diff line change @@ -416,13 +416,10 @@ SILIsolationInfo SILIsolationInfo::get(SILArgument *arg) {
416
416
// Before we do anything further, see if we have an isolated parameter. This
417
417
// handles isolated self and specifically marked isolated.
418
418
if (auto *isolatedArg = fArg ->getFunction ()->maybeGetIsolatedArgument ()) {
419
- if (auto functionIsolation = fArg ->getFunction ()->getActorIsolation ()) {
420
- assert (functionIsolation.isActorInstanceIsolated ());
421
- if (auto *nomDecl =
422
- isolatedArg->getType ().getNominalOrBoundGenericNominal ()) {
423
- return SILIsolationInfo::getActorInstanceIsolated (fArg , isolatedArg,
424
- nomDecl);
425
- }
419
+ if (auto *nomDecl =
420
+ isolatedArg->getType ().getNominalOrBoundGenericNominal ()) {
421
+ return SILIsolationInfo::getActorInstanceIsolated (fArg , isolatedArg,
422
+ nomDecl);
426
423
}
427
424
}
428
425
You can’t perform that action at this time.
0 commit comments