Correctly forward the implicit nonisolated(nonsending) parameter in

SILGen thunks.

Also, I discovered that we don't apply nonisolated(nonsending) to
function types in the new mode. That's one for a different patch.

Fixes rdar://154401813
This commit is contained in:
John McCall
2025-07-01 19:47:43 -04:00
parent 478d16ab5f
commit dae036ae85
6 changed files with 140 additions and 15 deletions

View File

@@ -2623,7 +2623,8 @@ public:
void collectThunkParams(
SILLocation loc, SmallVectorImpl<ManagedValue> &params,
SmallVectorImpl<ManagedValue> *indirectResultParams = nullptr,
SmallVectorImpl<ManagedValue> *indirectErrorParams = nullptr);
SmallVectorImpl<ManagedValue> *indirectErrorParams = nullptr,
ManagedValue *implicitIsolationParam = nullptr);
/// Build the type of a function transformation thunk.
CanSILFunctionType buildThunkType(CanSILFunctionType &sourceType,