@@ -438,17 +438,17 @@ struct TransferredNonTransferrableInfo {
438438 // /
439439 // / This is equal to the merge of the IsolationRegionInfo from all elements in
440440 // / nonTransferrable's region when the error was diagnosed.
441- SILIsolationInfo isolationRegionInfo;
441+ SILDynamicMergedIsolationInfo isolationRegionInfo;
442442
443- TransferredNonTransferrableInfo (Operand *transferredOperand,
444- SILValue nonTransferrableValue,
445- SILIsolationInfo isolationRegionInfo)
443+ TransferredNonTransferrableInfo (
444+ Operand *transferredOperand, SILValue nonTransferrableValue,
445+ SILDynamicMergedIsolationInfo isolationRegionInfo)
446446 : transferredOperand(transferredOperand),
447447 nonTransferrable (nonTransferrableValue),
448448 isolationRegionInfo(isolationRegionInfo) {}
449- TransferredNonTransferrableInfo (Operand *transferredOperand,
450- SILInstruction *nonTransferrableInst,
451- SILIsolationInfo isolationRegionInfo)
449+ TransferredNonTransferrableInfo (
450+ Operand *transferredOperand, SILInstruction *nonTransferrableInst,
451+ SILDynamicMergedIsolationInfo isolationRegionInfo)
452452 : transferredOperand(transferredOperand),
453453 nonTransferrable(nonTransferrableInst),
454454 isolationRegionInfo(isolationRegionInfo) {}
@@ -794,7 +794,7 @@ bool UseAfterTransferDiagnosticInferrer::initForIsolatedPartialApply(
794794 VariableNameInferrer::inferNameAndRoot (transferOp->get ())) {
795795 diagnosticEmitter.emitNamedIsolationCrossingDueToCapture (
796796 RegularLocation (std::get<0 >(p).getLoc ()), rootValueAndName->first ,
797- state.isolationInfo , std::get<2 >(p));
797+ state.isolationInfo . getIsolationInfo () , std::get<2 >(p));
798798 continue ;
799799 }
800800
@@ -975,7 +975,8 @@ void UseAfterTransferDiagnosticInferrer::infer() {
975975 VariableNameInferrer::inferNameAndRoot (transferOp->get ())) {
976976 auto &state = transferringOpToStateMap.get (transferOp);
977977 return diagnosticEmitter.emitNamedIsolationCrossingError (
978- baseLoc, rootValueAndName->first , state.isolationInfo ,
978+ baseLoc, rootValueAndName->first ,
979+ state.isolationInfo .getIsolationInfo (),
979980 *sourceApply->getIsolationCrossing ());
980981 }
981982
@@ -1003,7 +1004,8 @@ void UseAfterTransferDiagnosticInferrer::infer() {
10031004 auto captureInfo =
10041005 autoClosureExpr->getCaptureInfo ().getCaptures ()[captureIndex];
10051006 auto *captureDecl = captureInfo.getDecl ();
1006- AutoClosureWalker walker (*this , captureDecl, state.isolationInfo );
1007+ AutoClosureWalker walker (*this , captureDecl,
1008+ state.isolationInfo .getIsolationInfo ());
10071009 autoClosureExpr->walk (walker);
10081010}
10091011
@@ -1109,7 +1111,7 @@ class TransferNonTransferrableDiagnosticEmitter {
11091111 }
11101112
11111113 // / Return the isolation region info for \p getNonTransferrableValue().
1112- SILIsolationInfo getIsolationRegionInfo () const {
1114+ SILDynamicMergedIsolationInfo getIsolationRegionInfo () const {
11131115 return info.isolationRegionInfo ;
11141116 }
11151117
@@ -1536,10 +1538,9 @@ struct DiagnosticEvaluator final
15361538 partitionOp.getSourceInst ());
15371539 }
15381540
1539- void
1540- handleTransferNonTransferrable (const PartitionOp &partitionOp,
1541- Element transferredVal,
1542- SILIsolationInfo isolationRegionInfo) const {
1541+ void handleTransferNonTransferrable (
1542+ const PartitionOp &partitionOp, Element transferredVal,
1543+ SILDynamicMergedIsolationInfo isolationRegionInfo) const {
15431544 LLVM_DEBUG (llvm::dbgs ()
15441545 << " Emitting TransferNonTransferrable Error!\n "
15451546 << " ID: %%" << transferredVal << " \n "
@@ -1556,11 +1557,10 @@ struct DiagnosticEvaluator final
15561557 partitionOp.getSourceOp (), nonTransferrableValue, isolationRegionInfo);
15571558 }
15581559
1559- void
1560- handleTransferNonTransferrable (const PartitionOp &partitionOp,
1561- Element transferredVal,
1562- Element actualNonTransferrableValue,
1563- SILIsolationInfo isolationRegionInfo) const {
1560+ void handleTransferNonTransferrable (
1561+ const PartitionOp &partitionOp, Element transferredVal,
1562+ Element actualNonTransferrableValue,
1563+ SILDynamicMergedIsolationInfo isolationRegionInfo) const {
15641564 LLVM_DEBUG (llvm::dbgs ()
15651565 << " Emitting TransferNonTransferrable Error!\n "
15661566 << " ID: %%" << transferredVal << " \n "
0 commit comments