Skip to content

Commit be460a5

Browse files
xedinktoso
authored andcommitted
[Distributed] Synthesis: Make sure that each thunk parameter has an internal name
1 parent e9ca509 commit be460a5

File tree

1 file changed

+13
-5
lines changed

1 file changed

+13
-5
lines changed

lib/Sema/CodeSynthesisDistributedActor.cpp

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -527,15 +527,23 @@ static FuncDecl *createDistributedThunkFunction(FuncDecl *func) {
527527
// --- Prepare parameters
528528
auto funcParams = func->getParameters();
529529
SmallVector<ParamDecl*, 2> paramDecls;
530-
for (auto i : indices(*func->getParameters())) {
530+
for (unsigned i : indices(*func->getParameters())) {
531531
auto funcParam = funcParams->get(i);
532-
auto paramDecl = new (C) ParamDecl(SourceLoc(),
533-
SourceLoc(), funcParam->getArgumentName(),
534-
SourceLoc(), funcParam->getParameterName(),
535-
DC);
532+
533+
auto paramName = funcParam->getParameterName();
534+
if (paramName.empty()) {
535+
paramName = C.getIdentifier("p" + llvm::utostr(i));
536+
}
537+
538+
auto paramDecl = new (C)
539+
ParamDecl(SourceLoc(),
540+
/*argumentNameLoc=*/SourceLoc(), funcParam->getArgumentName(),
541+
/*parameterNameLoc=*/SourceLoc(), paramName, DC);
542+
536543
paramDecl->setImplicit(true);
537544
paramDecl->setSpecifier(funcParam->getSpecifier());
538545
paramDecl->setInterfaceType(funcParam->getInterfaceType());
546+
539547
paramDecls.push_back(paramDecl);
540548
}
541549
ParameterList *params = ParameterList::create(C, paramDecls); // = funcParams->clone(C);

0 commit comments

Comments
 (0)