aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/Format/Format.cpp8
-rw-r--r--lib/Format/TokenAnnotator.cpp2
-rw-r--r--unittests/Format/FormatTest.cpp22
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"
+ "};"));
}
//===----------------------------------------------------------------------===//