mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
[CodeSynthesis] Adopt ArgumentList
Most of this should be fairly mechanical, the changes in PlaygroundTransform are a little more involved though.
This commit is contained in:
@@ -148,15 +148,14 @@ deriveBodyMathOperator(AbstractFunctionDecl *funcDecl, MathOperator op) {
|
||||
};
|
||||
|
||||
// Create array of member operator call expressions.
|
||||
llvm::SmallVector<Expr *, 2> memberOpExprs;
|
||||
llvm::SmallVector<Identifier, 2> memberNames;
|
||||
llvm::SmallVector<Argument, 2> memberOpArgs;
|
||||
for (auto member : nominal->getStoredProperties()) {
|
||||
memberOpExprs.push_back(createMemberOpExpr(member));
|
||||
memberNames.push_back(member->getName());
|
||||
memberOpArgs.emplace_back(SourceLoc(), member->getName(),
|
||||
createMemberOpExpr(member));
|
||||
}
|
||||
// Call memberwise initializer with member operator call expressions.
|
||||
auto *callExpr =
|
||||
CallExpr::createImplicit(C, initExpr, memberOpExprs, memberNames);
|
||||
auto *argList = ArgumentList::createImplicit(C, memberOpArgs);
|
||||
auto *callExpr = CallExpr::createImplicit(C, initExpr, argList);
|
||||
ASTNode returnStmt = new (C) ReturnStmt(SourceLoc(), callExpr, true);
|
||||
return std::pair<BraceStmt *, bool>(
|
||||
BraceStmt::create(C, SourceLoc(), returnStmt, SourceLoc(), true), false);
|
||||
@@ -267,15 +266,14 @@ deriveBodyPropertyGetter(AbstractFunctionDecl *funcDecl, ProtocolDecl *proto,
|
||||
};
|
||||
|
||||
// Create array of `member.<property>` expressions.
|
||||
llvm::SmallVector<Expr *, 2> memberPropExprs;
|
||||
llvm::SmallVector<Identifier, 2> memberNames;
|
||||
llvm::SmallVector<Argument, 2> args;
|
||||
for (auto member : nominal->getStoredProperties()) {
|
||||
memberPropExprs.push_back(createMemberPropertyExpr(member));
|
||||
memberNames.push_back(member->getName());
|
||||
args.emplace_back(SourceLoc(), member->getName(),
|
||||
createMemberPropertyExpr(member));
|
||||
}
|
||||
// Call memberwise initializer with member property expressions.
|
||||
auto *callExpr =
|
||||
CallExpr::createImplicit(C, initExpr, memberPropExprs, memberNames);
|
||||
auto *callExpr = CallExpr::createImplicit(
|
||||
C, initExpr, ArgumentList::createImplicit(C, args));
|
||||
ASTNode returnStmt = new (C) ReturnStmt(SourceLoc(), callExpr, true);
|
||||
auto *braceStmt =
|
||||
BraceStmt::create(C, SourceLoc(), returnStmt, SourceLoc(), true);
|
||||
|
||||
Reference in New Issue
Block a user