| Index: tools/gn/command_format.cc
|
| diff --git a/tools/gn/command_format.cc b/tools/gn/command_format.cc
|
| index a054b21b9b9cef6aadd8877356036a1ef8da9e32..7b8f2f34201f2758783e7a7e1a34816fb8be4bc0 100644
|
| --- a/tools/gn/command_format.cc
|
| +++ b/tools/gn/command_format.cc
|
| @@ -181,7 +181,7 @@ class Printer {
|
| // bracket.
|
| template <class PARSENODE> // Just for const covariance.
|
| void Sequence(SequenceStyle style,
|
| - const std::vector<PARSENODE*>& list,
|
| + const std::vector<std::unique_ptr<PARSENODE>>& list,
|
| const ParseNode* end,
|
| bool force_multiline);
|
|
|
| @@ -194,7 +194,7 @@ class Printer {
|
| void InitializeSub(Printer* sub);
|
|
|
| template <class PARSENODE>
|
| - bool ListWillBeMultiline(const std::vector<PARSENODE*>& list,
|
| + bool ListWillBeMultiline(const std::vector<std::unique_ptr<PARSENODE>>& list,
|
| const ParseNode* end);
|
|
|
| std::string output_; // Output buffer.
|
| @@ -385,7 +385,7 @@ void Printer::Block(const ParseNode* root) {
|
|
|
| size_t i = 0;
|
| for (const auto& stmt : block->statements()) {
|
| - Expr(stmt, kPrecedenceLowest, std::string());
|
| + Expr(stmt.get(), kPrecedenceLowest, std::string());
|
| Newline();
|
| if (stmt->comments()) {
|
| // Why are before() not printed here too? before() are handled inside
|
| @@ -399,8 +399,8 @@ void Printer::Block(const ParseNode* root) {
|
| }
|
| }
|
| if (i < block->statements().size() - 1 &&
|
| - (ShouldAddBlankLineInBetween(block->statements()[i],
|
| - block->statements()[i + 1]))) {
|
| + (ShouldAddBlankLineInBetween(block->statements()[i].get(),
|
| + block->statements()[i + 1].get()))) {
|
| Newline();
|
| }
|
| ++i;
|
| @@ -648,7 +648,7 @@ int Printer::Expr(const ParseNode* root,
|
|
|
| template <class PARSENODE>
|
| void Printer::Sequence(SequenceStyle style,
|
| - const std::vector<PARSENODE*>& list,
|
| + const std::vector<std::unique_ptr<PARSENODE>>& list,
|
| const ParseNode* end,
|
| bool force_multiline) {
|
| if (style == kSequenceStyleList)
|
| @@ -665,7 +665,7 @@ void Printer::Sequence(SequenceStyle style,
|
| // No elements, and not forcing newlines, print nothing.
|
| } else if (list.size() == 1 && !force_multiline) {
|
| Print(" ");
|
| - Expr(list[0], kPrecedenceLowest, std::string());
|
| + Expr(list[0].get(), kPrecedenceLowest, std::string());
|
| CHECK(!list[0]->comments() || list[0]->comments()->after().empty());
|
| Print(" ");
|
| } else {
|
| @@ -687,11 +687,11 @@ void Printer::Sequence(SequenceStyle style,
|
| bool body_of_list = i < list.size() - 1 || style == kSequenceStyleList;
|
| bool want_comma =
|
| body_of_list && (style == kSequenceStyleList && !x->AsBlockComment());
|
| - Expr(x, kPrecedenceLowest, want_comma ? "," : std::string());
|
| + Expr(x.get(), kPrecedenceLowest, want_comma ? "," : std::string());
|
| CHECK(!x->comments() || x->comments()->after().empty());
|
| if (body_of_list) {
|
| if (i < list.size() - 1 &&
|
| - ShouldAddBlankLineInBetween(list[i], list[i + 1]))
|
| + ShouldAddBlankLineInBetween(list[i].get(), list[i + 1].get()))
|
| Newline();
|
| }
|
| ++i;
|
| @@ -734,7 +734,7 @@ int Printer::FunctionCall(const FunctionCallNode* func_call,
|
| bool have_block = func_call->block() != nullptr;
|
| bool force_multiline = false;
|
|
|
| - const std::vector<const ParseNode*>& list = func_call->args()->contents();
|
| + const auto& list = func_call->args()->contents();
|
| const ParseNode* end = func_call->args()->End();
|
|
|
| if (end && end->comments() && !end->comments()->before().empty())
|
| @@ -767,7 +767,7 @@ int Printer::FunctionCall(const FunctionCallNode* func_call,
|
| IndentState(CurrentColumn(), continuation_requires_indent, false));
|
| int penalty_one_line = 0;
|
| for (size_t i = 0; i < list.size(); ++i) {
|
| - penalty_one_line += sub1.Expr(list[i], kPrecedenceLowest,
|
| + penalty_one_line += sub1.Expr(list[i].get(), kPrecedenceLowest,
|
| i < list.size() - 1 ? ", " : std::string());
|
| }
|
| sub1.Print(terminator);
|
| @@ -785,8 +785,9 @@ int Printer::FunctionCall(const FunctionCallNode* func_call,
|
| IndentState(CurrentColumn(), continuation_requires_indent, false));
|
| int penalty_multiline_start_same_line = 0;
|
| for (size_t i = 0; i < list.size(); ++i) {
|
| - penalty_multiline_start_same_line += sub2.Expr(
|
| - list[i], kPrecedenceLowest, i < list.size() - 1 ? "," : std::string());
|
| + penalty_multiline_start_same_line +=
|
| + sub2.Expr(list[i].get(), kPrecedenceLowest,
|
| + i < list.size() - 1 ? "," : std::string());
|
| if (i < list.size() - 1) {
|
| sub2.Newline();
|
| }
|
| @@ -807,8 +808,9 @@ int Printer::FunctionCall(const FunctionCallNode* func_call,
|
| std::abs(sub3.CurrentColumn() - start_column) *
|
| kPenaltyHorizontalSeparation;
|
| }
|
| - penalty_multiline_start_next_line += sub3.Expr(
|
| - list[i], kPrecedenceLowest, i < list.size() - 1 ? "," : std::string());
|
| + penalty_multiline_start_next_line +=
|
| + sub3.Expr(list[i].get(), kPrecedenceLowest,
|
| + i < list.size() - 1 ? "," : std::string());
|
| if (i < list.size() - 1) {
|
| sub3.Newline();
|
| }
|
| @@ -852,7 +854,7 @@ int Printer::FunctionCall(const FunctionCallNode* func_call,
|
| Newline();
|
| }
|
| bool want_comma = i < list.size() - 1 && !x->AsBlockComment();
|
| - Expr(x, kPrecedenceLowest, want_comma ? "," : std::string());
|
| + Expr(x.get(), kPrecedenceLowest, want_comma ? "," : std::string());
|
| CHECK(!x->comments() || x->comments()->after().empty());
|
| if (i < list.size() - 1) {
|
| if (!want_comma)
|
| @@ -900,8 +902,9 @@ void Printer::InitializeSub(Printer* sub) {
|
| }
|
|
|
| template <class PARSENODE>
|
| -bool Printer::ListWillBeMultiline(const std::vector<PARSENODE*>& list,
|
| - const ParseNode* end) {
|
| +bool Printer::ListWillBeMultiline(
|
| + const std::vector<std::unique_ptr<PARSENODE>>& list,
|
| + const ParseNode* end) {
|
| if (list.size() > 1)
|
| return true;
|
|
|
|
|