Skip to content

Commit 648edaa

Browse files
committed
[libSyntax] Mark parameters that are always passed with move semantics as move-types
1 parent a2996b7 commit 648edaa

8 files changed

+10
-10
lines changed

include/swift/Parse/ParsedSyntax.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ class ParsedSyntax {
2626
: RawNode(std::move(rawNode)) {}
2727

2828
const ParsedRawSyntaxNode &getRaw() const { return RawNode; }
29-
ParsedRawSyntaxNode takeRaw() { return std::move(RawNode); }
29+
ParsedRawSyntaxNode &&takeRaw() { return std::move(RawNode); }
3030
syntax::SyntaxKind getKind() const { return RawNode.getKind(); }
3131

3232
/// Returns true if the syntax node is of the given type.

include/swift/Parse/ParsedSyntaxBuilders.h.gyb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public:
5151
: SPCtx(SPCtx) {}
5252

5353
% for child in node.children:
54-
Parsed${node.name}Builder &use${child.name}(Parsed${child.type_name} ${child.name});
54+
Parsed${node.name}Builder &use${child.name}(Parsed${child.type_name} &&${child.name});
5555
% child_node = NODE_MAP.get(child.syntax_kind)
5656
% if child_node and child_node.is_syntax_collection():
5757
% child_elt = child_node.collection_element_name

include/swift/Parse/ParsedSyntaxNodes.h.gyb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ class Parsed${node.name} ${qualifier} : public Parsed${node.base_type} {
5353
% end
5454

5555
public:
56-
explicit Parsed${node.name}(ParsedRawSyntaxNode rawNode)
56+
explicit Parsed${node.name}(ParsedRawSyntaxNode &&rawNode)
5757
: Parsed${node.base_type}(std::move(rawNode)) {
5858
}
5959

include/swift/Parse/ParsedSyntaxRecorder.h.gyb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ struct ParsedSyntaxRecorder {
3939
% if child.is_optional:
4040
% param_type = "Optional<%s>" % param_type
4141
% end
42-
% child_params.append("%s %s" % (param_type, child.name))
42+
% child_params.append("%s &&%s" % (param_type, child.name))
4343
% end
4444
% child_params = ', '.join(child_params)
4545
private:

include/swift/Parse/SyntaxParsingContext.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -261,13 +261,13 @@ class alignas(1 << SyntaxAlignInBits) SyntaxParsingContext {
261261
}
262262

263263
/// Add RawSyntax to the parts.
264-
void addRawSyntax(ParsedRawSyntaxNode Raw);
264+
void addRawSyntax(ParsedRawSyntaxNode &&Raw);
265265

266266
/// Add Token with Trivia to the parts.
267267
void addToken(Token &Tok, StringRef LeadingTrivia, StringRef TrailingTrivia);
268268

269269
/// Add Syntax to the parts.
270-
void addSyntax(ParsedSyntax Node);
270+
void addSyntax(ParsedSyntax &&Node);
271271

272272
template<typename SyntaxNode>
273273
llvm::Optional<SyntaxNode> popIf() {

lib/Parse/ParsedSyntaxBuilders.cpp.gyb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ using namespace swift::syntax;
3838
% child_elt_name = child.name + 'Member'
3939
% end
4040
Parsed${node.name}Builder &
41-
Parsed${node.name}Builder::use${child.name}(Parsed${child.type_name} ${child.name}) {
41+
Parsed${node.name}Builder::use${child.name}(Parsed${child.type_name} &&${child.name}) {
4242
% if child_elt:
4343
assert(${child_elt_name}s.empty() && "use either 'use' function or 'add', not both");
4444
% end

lib/Parse/ParsedSyntaxRecorder.cpp.gyb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ bool ParsedSyntaxRecorder::formExactLayoutFor(syntax::SyntaxKind Kind,
8585
% param_type = "Parsed%s" % child.type_name
8686
% if child.is_optional:
8787
% param_type = "Optional<%s>" % param_type
88-
% child_params.append("%s %s" % (param_type, child.name))
88+
% child_params.append("%s &&%s" % (param_type, child.name))
8989
% child_move_args.append("std::move(%s)" % (child.name))
9090
% child_params = ', '.join(child_params)
9191
% child_move_args = ', '.join(child_move_args)

lib/Parse/SyntaxParsingContext.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ SyntaxParsingContext::bridgeAs(SyntaxContextKind Kind,
186186
}
187187

188188
/// Add RawSyntax to the parts.
189-
void SyntaxParsingContext::addRawSyntax(ParsedRawSyntaxNode Raw) {
189+
void SyntaxParsingContext::addRawSyntax(ParsedRawSyntaxNode &&Raw) {
190190
getStorage().emplace_back(std::move(Raw));
191191
}
192192

@@ -219,7 +219,7 @@ void SyntaxParsingContext::addToken(Token &Tok, StringRef LeadingTrivia,
219219
}
220220

221221
/// Add Syntax to the parts.
222-
void SyntaxParsingContext::addSyntax(ParsedSyntax Node) {
222+
void SyntaxParsingContext::addSyntax(ParsedSyntax &&Node) {
223223
if (!Enabled)
224224
return;
225225
addRawSyntax(Node.takeRaw());

0 commit comments

Comments
 (0)