From: Daniel Jasper Date: Sat, 9 Jan 2016 15:56:47 +0000 (+0000) Subject: clang-format: Fix incorrect line break in certain configurations. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5ae85ca16da445888a4afee65e84b5e429cc8eea;p=clang clang-format: Fix incorrect line break in certain configurations. Before: void aaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaaaaaaa, vector bbbbbbbbbbbbbbb); After: void aaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaaaaaaa, vector bbbbbbbbbbbbbbb); git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@257257 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Format/ContinuationIndenter.cpp b/lib/Format/ContinuationIndenter.cpp index 535eac4803..ff2569d41a 100644 --- a/lib/Format/ContinuationIndenter.cpp +++ b/lib/Format/ContinuationIndenter.cpp @@ -150,7 +150,8 @@ bool ContinuationIndenter::mustBreak(const LineState &State) { if (Previous.is(tok::semi) && State.LineContainsContinuedForLoopSection) return true; if ((startsNextParameter(Current, Style) || Previous.is(tok::semi) || - (Previous.is(TT_TemplateCloser) && Current.is(TT_StartOfName)) || + (Previous.is(TT_TemplateCloser) && Current.is(TT_StartOfName) && + Previous.NestingLevel == 1) || (Style.BreakBeforeTernaryOperators && Current.is(TT_ConditionalExpr) && Previous.isNot(tok::question)) || (!Style.BreakBeforeTernaryOperators && diff --git a/unittests/Format/FormatTest.cpp b/unittests/Format/FormatTest.cpp index 46773a306f..fe673cc486 100644 --- a/unittests/Format/FormatTest.cpp +++ b/unittests/Format/FormatTest.cpp @@ -4062,6 +4062,10 @@ TEST_F(FormatTest, FormatsDeclarationsOnePerLine) { " int aaaaaaaaaaaaaaaaaaaa,\n" " int aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) {}", NoBinPacking); + NoBinPacking.AllowAllParametersOfDeclarationOnNextLine = false; + verifyFormat("void aaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaaaaaaa,\n" + " vector bbbbbbbbbbbbbbb);", + NoBinPacking); } TEST_F(FormatTest, FormatsOneParameterPerLineIfNecessary) {