mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
[Sema/IRGen] Extend ad-hoc requirement handling to DistributedTargetInvocationEncoder.record{Argument, ReturnType}
This commit is contained in:
@@ -8591,9 +8591,20 @@ ConstraintSystem::SolutionKind ConstraintSystem::simplifyConformsToConstraint(
|
||||
return recordConformance(synthesized);
|
||||
};
|
||||
|
||||
if (witness->isDistributedActorSystemRemoteCall(/*isVoidReturn=*/false)) {
|
||||
if (GP->isEqual(cast<FuncDecl>(witness)->getResultInterfaceType()))
|
||||
return synthesizeConformance();
|
||||
if (witness->isGeneric()) {
|
||||
// `DistributedActorSystem.remoteCall`
|
||||
if (witness->isDistributedActorSystemRemoteCall(/*isVoidReturn=*/false)) {
|
||||
if (GP->isEqual(cast<FuncDecl>(witness)->getResultInterfaceType()))
|
||||
return synthesizeConformance();
|
||||
}
|
||||
|
||||
// `DistributedTargetInvocationEncoder.record{Argument, ResultType}`
|
||||
if (witness->isDistributedTargetInvocationEncoderRecordArgument() ||
|
||||
witness->isDistributedTargetInvocationEncoderRecordReturnType()) {
|
||||
auto genericParams = witness->getGenericParams()->getParams();
|
||||
if (GP->isEqual(genericParams.front()->getDeclaredInterfaceType()))
|
||||
return synthesizeConformance();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user