clang-format: Improve handling of comments in binary expressions.

Before:
  b = a &&
      // Comment
      b.c &&
      d;

After:
  b = a &&
      // Comment
      b.c && d;

This fixes llvm.org/PR21535.

llvm-svn: 221727
This commit is contained in:
Daniel Jasper 2014-11-11 23:04:51 +00:00
parent de5e32b5b4
commit 3eb341c478
2 changed files with 4 additions and 2 deletions

View File

@ -1149,8 +1149,7 @@ public:
Current->OperatorIndex = OperatorIndex;
++OperatorIndex;
}
next(/*SkipPastLeadingComments=*/false);
next(/*SkipPastLeadingComments=*/Precedence > 0);
}
}
}

View File

@ -3118,6 +3118,9 @@ TEST_F(FormatTest, LineBreakingInBinaryExpressions) {
verifyFormat("if ((aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ||\n"
" bbbbbbbbbbbbbbbbbb) && // aaaaaaaaaaaaaaaa\n"
" cccccc) {\n}");
verifyFormat("b = a &&\n"
" // Comment\n"
" b.c && d;");
// If the LHS of a comparison is not a binary expression itself, the
// additional linebreak confuses many people.