diff options
-rw-r--r-- | lib/Format/Format.cpp | 8 | ||||
-rw-r--r-- | lib/Format/TokenAnnotator.cpp | 2 | ||||
-rw-r--r-- | unittests/Format/FormatTest.cpp | 22 |
3 files changed, 19 insertions, 13 deletions
diff --git a/lib/Format/Format.cpp b/lib/Format/Format.cpp index 7687aa347b..8bc414cd02 100644 --- a/lib/Format/Format.cpp +++ b/lib/Format/Format.cpp @@ -518,9 +518,11 @@ private: State.Stack.back().BreakBeforeParameter = false; if (!DryRun) { - unsigned NewLines = - std::max(1u, std::min(Current.FormatTok.NewlinesBefore, - Style.MaxEmptyLinesToKeep + 1)); + unsigned NewLines = 1; + if (Current.Type == TT_LineComment) + NewLines = + std::max(NewLines, std::min(Current.FormatTok.NewlinesBefore, + Style.MaxEmptyLinesToKeep + 1)); if (!Line.InPPDirective) Whitespaces.replaceWhitespace(Current, NewLines, State.Column, WhitespaceStartColumn, Style); diff --git a/lib/Format/TokenAnnotator.cpp b/lib/Format/TokenAnnotator.cpp index 86daa8d60e..08290b905a 100644 --- a/lib/Format/TokenAnnotator.cpp +++ b/lib/Format/TokenAnnotator.cpp @@ -842,8 +842,6 @@ void TokenAnnotator::calculateFormattingInformation(AnnotatedLine &Line) { Current->Parent->is(tok::string_literal) && Current->Children[0].is(tok::string_literal)) { Current->MustBreakBefore = true; - } else if (Current->FormatTok.NewlinesBefore > 1) { - Current->MustBreakBefore = true; } else { Current->MustBreakBefore = false; } diff --git a/unittests/Format/FormatTest.cpp b/unittests/Format/FormatTest.cpp index a902466c4c..53f3773d5c 100644 --- a/unittests/Format/FormatTest.cpp +++ b/unittests/Format/FormatTest.cpp @@ -588,17 +588,23 @@ TEST_F(FormatTest, CommentsInStaticInitializers) { EXPECT_EQ("S s = {\n" " // Some comment\n" - " a\n" + " a,\n" "\n" " // Comment after empty line\n" " b\n" - "}", format("S s = {\n" - " // Some comment\n" - " a\n" - " \n" - " // Comment after empty line\n" - " b\n" - "}")); + "}", + format("S s = {\n" + " // Some comment\n" + " a,\n" + " \n" + " // Comment after empty line\n" + " b\n" + "}")); + EXPECT_EQ("S s = { a, b };", format("S s = {\n" + " a,\n" + "\n" + " b\n" + "};")); } //===----------------------------------------------------------------------===// |