From: Daniel Jasper Date: Tue, 1 Mar 2016 04:19:59 +0000 (+0000) Subject: clang-format: Correctly apply wrap before multi-line RHS rule to X-Git-Tag: llvmorg-3.9.0-rc1~12862 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=04b4e10873f6728f382ce2e2aa71aa10831c101f;p=platform%2Fupstream%2Fllvm.git clang-format: Correctly apply wrap before multi-line RHS rule to ternary expressions. Before: return aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ? aaaaa : bbbbbbbbbbbbbbb + cccccccccccccccc; After: return aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ? aaaaa : bbbbbbbbbbbbbbb + cccccccccccccccc; llvm-svn: 262293 --- diff --git a/clang/lib/Format/ContinuationIndenter.cpp b/clang/lib/Format/ContinuationIndenter.cpp index b9afe11..4e5a294 100644 --- a/clang/lib/Format/ContinuationIndenter.cpp +++ b/clang/lib/Format/ContinuationIndenter.cpp @@ -847,7 +847,7 @@ void ContinuationIndenter::moveStatePastFakeLParens(LineState &State, // there is a line-break right after the operator. // Exclude relational operators, as there, it is always more desirable to // have the LHS 'left' of the RHS. - if (Previous && Previous->getPrecedence() > prec::Assignment && + if (Previous && Previous->getPrecedence() != prec::Assignment && Previous->isOneOf(TT_BinaryOperator, TT_ConditionalExpr) && Previous->getPrecedence() != prec::Relational) { bool BreakBeforeOperator = diff --git a/clang/unittests/Format/FormatTest.cpp b/clang/unittests/Format/FormatTest.cpp index b00b895..164909f 100644 --- a/clang/unittests/Format/FormatTest.cpp +++ b/clang/unittests/Format/FormatTest.cpp @@ -4708,6 +4708,10 @@ TEST_F(FormatTest, BreaksConditionalExpressionsAfterOperator) { " /*bbbbbbbbbbbbbbb=*/bbbbbbbbbbbbbbbbbbbbbbbbb :\n" " ccccccccccccccccccccccccccc;", Style); + verifyFormat("return aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ?\n" + " aaaaa :\n" + " bbbbbbbbbbbbbbb + cccccccccccccccc;", + Style); } TEST_F(FormatTest, DeclarationsOfMultipleVariables) {