Index: tools/gn/parser.cc |
diff --git a/tools/gn/parser.cc b/tools/gn/parser.cc |
index b2e22fb09f63a2f383fd7ee2bcf73896ea570fc2..79966b8ac59c4ce096b7124899df6d01046d4343 100644 |
--- a/tools/gn/parser.cc |
+++ b/tools/gn/parser.cc |
@@ -4,6 +4,8 @@ |
#include "tools/gn/parser.h" |
+#include <utility> |
+ |
#include "base/logging.h" |
#include "tools/gn/functions.h" |
#include "tools/gn/operators.h" |
@@ -215,7 +217,7 @@ scoped_ptr<ParseNode> Parser::ParseExpression(const std::vector<Token>& tokens, |
*err = Err(p.cur_token(), "Trailing garbage"); |
return nullptr; |
} |
- return expr.Pass(); |
+ return expr; |
} |
// static |
@@ -328,7 +330,7 @@ scoped_ptr<ParseNode> Parser::ParseExpression(int precedence) { |
scoped_ptr<ParseNode> left = (this->*prefix)(token); |
if (has_error()) |
- return left.Pass(); |
+ return left; |
while (!at_end() && !IsStatementBreak(cur_token().type()) && |
precedence <= expressions_[cur_token().type()].precedence) { |
@@ -340,12 +342,12 @@ scoped_ptr<ParseNode> Parser::ParseExpression(int precedence) { |
token.value().as_string() + std::string("'")); |
return scoped_ptr<ParseNode>(); |
} |
- left = (this->*infix)(left.Pass(), token); |
+ left = (this->*infix)(std::move(left), token); |
if (has_error()) |
return scoped_ptr<ParseNode>(); |
} |
- return left.Pass(); |
+ return left; |
} |
scoped_ptr<ParseNode> Parser::Literal(Token token) { |
@@ -353,13 +355,13 @@ scoped_ptr<ParseNode> Parser::Literal(Token token) { |
} |
scoped_ptr<ParseNode> Parser::Name(Token token) { |
- return IdentifierOrCall(scoped_ptr<ParseNode>(), token).Pass(); |
+ return IdentifierOrCall(scoped_ptr<ParseNode>(), token); |
} |
scoped_ptr<ParseNode> Parser::BlockComment(Token token) { |
scoped_ptr<BlockCommentNode> comment(new BlockCommentNode()); |
comment->set_comment(token); |
- return comment.Pass(); |
+ return std::move(comment); |
} |
scoped_ptr<ParseNode> Parser::Group(Token token) { |
@@ -367,7 +369,7 @@ scoped_ptr<ParseNode> Parser::Group(Token token) { |
if (has_error()) |
return scoped_ptr<ParseNode>(); |
Consume(Token::RIGHT_PAREN, "Expected ')'"); |
- return expr.Pass(); |
+ return expr; |
} |
scoped_ptr<ParseNode> Parser::Not(Token token) { |
@@ -381,15 +383,15 @@ scoped_ptr<ParseNode> Parser::Not(Token token) { |
} |
scoped_ptr<UnaryOpNode> unary_op(new UnaryOpNode); |
unary_op->set_op(token); |
- unary_op->set_operand(expr.Pass()); |
- return unary_op.Pass(); |
+ unary_op->set_operand(std::move(expr)); |
+ return std::move(unary_op); |
} |
scoped_ptr<ParseNode> Parser::List(Token node) { |
scoped_ptr<ParseNode> list(ParseList(node, Token::RIGHT_BRACKET, true)); |
if (!has_error() && !at_end()) |
Consume(Token::RIGHT_BRACKET, "Expected ']'"); |
- return list.Pass(); |
+ return list; |
} |
scoped_ptr<ParseNode> Parser::BinaryOperator(scoped_ptr<ParseNode> left, |
@@ -405,9 +407,9 @@ scoped_ptr<ParseNode> Parser::BinaryOperator(scoped_ptr<ParseNode> left, |
} |
scoped_ptr<BinaryOpNode> binary_op(new BinaryOpNode); |
binary_op->set_op(token); |
- binary_op->set_left(left.Pass()); |
- binary_op->set_right(right.Pass()); |
- return binary_op.Pass(); |
+ binary_op->set_left(std::move(left)); |
+ binary_op->set_right(std::move(right)); |
+ return std::move(binary_op); |
} |
scoped_ptr<ParseNode> Parser::IdentifierOrCall(scoped_ptr<ParseNode> left, |
@@ -439,14 +441,14 @@ scoped_ptr<ParseNode> Parser::IdentifierOrCall(scoped_ptr<ParseNode> left, |
if (!left && !has_arg) { |
// Not a function call, just a standalone identifier. |
- return scoped_ptr<ParseNode>(new IdentifierNode(token)).Pass(); |
+ return scoped_ptr<ParseNode>(new IdentifierNode(token)); |
} |
scoped_ptr<FunctionCallNode> func_call(new FunctionCallNode); |
func_call->set_function(token); |
- func_call->set_args(list.Pass()); |
+ func_call->set_args(std::move(list)); |
if (block) |
- func_call->set_block(block.Pass()); |
- return func_call.Pass(); |
+ func_call->set_block(std::move(block)); |
+ return std::move(func_call); |
} |
scoped_ptr<ParseNode> Parser::Assignment(scoped_ptr<ParseNode> left, |
@@ -463,9 +465,9 @@ scoped_ptr<ParseNode> Parser::Assignment(scoped_ptr<ParseNode> left, |
} |
scoped_ptr<BinaryOpNode> assign(new BinaryOpNode); |
assign->set_op(token); |
- assign->set_left(left.Pass()); |
- assign->set_right(value.Pass()); |
- return assign.Pass(); |
+ assign->set_left(std::move(left)); |
+ assign->set_right(std::move(value)); |
+ return std::move(assign); |
} |
scoped_ptr<ParseNode> Parser::Subscript(scoped_ptr<ParseNode> left, |
@@ -483,8 +485,8 @@ scoped_ptr<ParseNode> Parser::Subscript(scoped_ptr<ParseNode> left, |
Consume(Token::RIGHT_BRACKET, "Expecting ']' after subscript."); |
scoped_ptr<AccessorNode> accessor(new AccessorNode); |
accessor->set_base(left->AsIdentifier()->value()); |
- accessor->set_index(value.Pass()); |
- return accessor.Pass(); |
+ accessor->set_index(std::move(value)); |
+ return std::move(accessor); |
} |
scoped_ptr<ParseNode> Parser::DotOperator(scoped_ptr<ParseNode> left, |
@@ -508,7 +510,7 @@ scoped_ptr<ParseNode> Parser::DotOperator(scoped_ptr<ParseNode> left, |
accessor->set_base(left->AsIdentifier()->value()); |
accessor->set_member(scoped_ptr<IdentifierNode>( |
static_cast<IdentifierNode*>(right.release()))); |
- return accessor.Pass(); |
+ return std::move(accessor); |
} |
// Does not Consume the start or end token. |
@@ -553,7 +555,7 @@ scoped_ptr<ListNode> Parser::ParseList(Token start_token, |
return scoped_ptr<ListNode>(); |
} |
list->set_end(make_scoped_ptr(new EndNode(cur_token()))); |
- return list.Pass(); |
+ return list; |
} |
scoped_ptr<ParseNode> Parser::ParseFile() { |
@@ -564,7 +566,7 @@ scoped_ptr<ParseNode> Parser::ParseFile() { |
scoped_ptr<ParseNode> statement = ParseStatement(); |
if (!statement) |
break; |
- file->append_statement(statement.Pass()); |
+ file->append_statement(std::move(statement)); |
} |
if (!at_end() && !has_error()) |
*err_ = Err(cur_token(), "Unexpected here, should be newline."); |
@@ -577,7 +579,7 @@ scoped_ptr<ParseNode> Parser::ParseFile() { |
// ignorant of them. |
AssignComments(file.get()); |
- return file.Pass(); |
+ return std::move(file); |
} |
scoped_ptr<ParseNode> Parser::ParseStatement() { |
@@ -591,7 +593,7 @@ scoped_ptr<ParseNode> Parser::ParseStatement() { |
scoped_ptr<ParseNode> stmt = ParseExpression(); |
if (stmt) { |
if (stmt->AsFunctionCall() || IsAssignment(stmt.get())) |
- return stmt.Pass(); |
+ return stmt; |
} |
if (!has_error()) { |
Token token = at_end() ? tokens_[tokens_.size() - 1] : cur_token(); |
@@ -618,9 +620,9 @@ scoped_ptr<BlockNode> Parser::ParseBlock() { |
scoped_ptr<ParseNode> statement = ParseStatement(); |
if (!statement) |
return scoped_ptr<BlockNode>(); |
- block->append_statement(statement.Pass()); |
+ block->append_statement(std::move(statement)); |
} |
- return block.Pass(); |
+ return block; |
} |
scoped_ptr<ParseNode> Parser::ParseCondition() { |
@@ -631,12 +633,12 @@ scoped_ptr<ParseNode> Parser::ParseCondition() { |
if (IsAssignment(condition->condition())) |
*err_ = Err(condition->condition(), "Assignment not allowed in 'if'."); |
Consume(Token::RIGHT_PAREN, "Expected ')' after condition of 'if'."); |
- condition->set_if_true(ParseBlock().Pass()); |
+ condition->set_if_true(ParseBlock()); |
if (Match(Token::ELSE)) { |
if (LookAhead(Token::LEFT_BRACE)) { |
- condition->set_if_false(ParseBlock().Pass()); |
+ condition->set_if_false(ParseBlock()); |
} else if (LookAhead(Token::IF)) { |
- condition->set_if_false(ParseStatement().Pass()); |
+ condition->set_if_false(ParseStatement()); |
} else { |
*err_ = Err(cur_token(), "Expected '{' or 'if' after 'else'."); |
return scoped_ptr<ParseNode>(); |
@@ -644,7 +646,7 @@ scoped_ptr<ParseNode> Parser::ParseCondition() { |
} |
if (has_error()) |
return scoped_ptr<ParseNode>(); |
- return condition.Pass(); |
+ return std::move(condition); |
} |
void Parser::TraverseOrder(const ParseNode* root, |