From: Daniel Jasper Date: Tue, 10 Jun 2014 10:42:26 +0000 (+0000) Subject: clang-format: Fix enum formatting with specific comment. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ff8776e01383fde7a7ba7b59d879914b44df5cea;p=clang clang-format: Fix enum formatting with specific comment. Before: enum Fruit { // APPLE, PEAR }; After: enum Fruit { // APPLE, PEAR }; git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@210522 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Format/ContinuationIndenter.cpp b/lib/Format/ContinuationIndenter.cpp index 5d59f19edf..6304ff71fc 100644 --- a/lib/Format/ContinuationIndenter.cpp +++ b/lib/Format/ContinuationIndenter.cpp @@ -447,7 +447,9 @@ unsigned ContinuationIndenter::addTokenOnNewLine(LineState &State, // If we break after { or the [ of an array initializer, we should also break // before the corresponding } or ]. - if (Previous.is(tok::l_brace) || Previous.Type == TT_ArrayInitializerLSquare) + if (PreviousNonComment && + (PreviousNonComment->is(tok::l_brace) || + PreviousNonComment->Type == TT_ArrayInitializerLSquare)) State.Stack.back().BreakBeforeClosingBrace = true; if (State.Stack.back().AvoidBinPacking) { diff --git a/unittests/Format/FormatTest.cpp b/unittests/Format/FormatTest.cpp index 02636a7016..baf05a9b74 100644 --- a/unittests/Format/FormatTest.cpp +++ b/unittests/Format/FormatTest.cpp @@ -1900,6 +1900,10 @@ TEST_F(FormatTest, FormatsEnum) { "\n" " THREE\n" "}")); + verifyFormat("enum E { // comment\n" + " ONE,\n" + " TWO\n" + "};"); } TEST_F(FormatTest, FormatsEnumsWithErrors) { @@ -5410,7 +5414,8 @@ TEST_F(FormatTest, LayoutCxx11BraceInitializers) { " BracedList{ // comment 1 (Forcing interesting break)\n" " param1, param2,\n" " // comment 2\n" - " param3, param4 });", + " param3, param4\n" + " });", ExtraSpaces); verifyFormat( "std::this_thread::sleep_for(\n"