mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
[sil-generic-specializer] Fix bugs in the implementation of partial specialization for partial_apply
Do not forget to map interface types to proper contextual types.
This commit is contained in:
@@ -1958,12 +1958,14 @@ SILValue ReabstractionThunkGenerator::createReabstractionThunkApply(
|
||||
SILBasicBlock *ErrorBB = Thunk->createBasicBlock();
|
||||
Builder.createTryApply(Loc, FRI, CalleeSILSubstFnTy, Subs,
|
||||
Arguments, NormalBB, ErrorBB);
|
||||
auto *ErrorVal = ErrorBB->createPHIArgument(specConv.getSILErrorType(),
|
||||
ValueOwnershipKind::Owned);
|
||||
auto *ErrorVal = ErrorBB->createPHIArgument(
|
||||
SpecializedFunc->mapTypeIntoContext(specConv.getSILErrorType()),
|
||||
ValueOwnershipKind::Owned);
|
||||
Builder.setInsertionPoint(ErrorBB);
|
||||
Builder.createThrow(Loc, ErrorVal);
|
||||
SILValue ReturnValue = NormalBB->createPHIArgument(
|
||||
specConv.getSILResultType(), ValueOwnershipKind::Owned);
|
||||
SpecializedFunc->mapTypeIntoContext(specConv.getSILResultType()),
|
||||
ValueOwnershipKind::Owned);
|
||||
Builder.setInsertionPoint(NormalBB);
|
||||
return ReturnValue;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user