r293839 - clang-format: Fix incorrect line breaks after forced operator wraps.
Daniel Jasper via cfe-commits
cfe-commits at lists.llvm.org
Wed Feb 1 15:27:37 PST 2017
Author: djasper
Date: Wed Feb 1 17:27:37 2017
New Revision: 293839
URL: http://llvm.org/viewvc/llvm-project?rev=293839&view=rev
Log:
clang-format: Fix incorrect line breaks after forced operator wraps.
Before:
bool x = aaaaa //
||
bbbbb
//
|| cccc;
After:
bool x = aaaaa //
|| bbbbb
//
|| cccc;
Modified:
cfe/trunk/lib/Format/ContinuationIndenter.cpp
cfe/trunk/unittests/Format/FormatTest.cpp
Modified: cfe/trunk/lib/Format/ContinuationIndenter.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Format/ContinuationIndenter.cpp?rev=293839&r1=293838&r2=293839&view=diff
==============================================================================
--- cfe/trunk/lib/Format/ContinuationIndenter.cpp (original)
+++ cfe/trunk/lib/Format/ContinuationIndenter.cpp Wed Feb 1 17:27:37 2017
@@ -420,7 +420,7 @@ void ContinuationIndenter::addTokenOnCur
P->getPrecedence() != prec::Assignment &&
P->getPrecedence() != prec::Relational) {
bool BreakBeforeOperator =
- P->is(tok::lessless) ||
+ P->MustBreakBefore || P->is(tok::lessless) ||
(P->is(TT_BinaryOperator) &&
Style.BreakBeforeBinaryOperators != FormatStyle::BOS_None) ||
(P->is(TT_ConditionalExpr) && Style.BreakBeforeTernaryOperators);
Modified: cfe/trunk/unittests/Format/FormatTest.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/Format/FormatTest.cpp?rev=293839&r1=293838&r2=293839&view=diff
==============================================================================
--- cfe/trunk/unittests/Format/FormatTest.cpp (original)
+++ cfe/trunk/unittests/Format/FormatTest.cpp Wed Feb 1 17:27:37 2017
@@ -4151,6 +4151,15 @@ TEST_F(FormatTest, ExpressionIndentation
Style);
}
+TEST_F(FormatTest, EnforcedOperatorWraps) {
+ // Here we'd like to wrap after the || operators, but a comment is forcing an
+ // earlier wrap.
+ verifyFormat("bool x = aaaaa //\n"
+ " || bbbbb\n"
+ " //\n"
+ " || cccc;");
+}
+
TEST_F(FormatTest, NoOperandAlignment) {
FormatStyle Style = getLLVMStyle();
Style.AlignOperands = false;
More information about the cfe-commits
mailing list