diff options
author | Daniel Jasper <djasper@google.com> | 2013-02-06 15:23:09 +0000 |
---|---|---|
committer | Daniel Jasper <djasper@google.com> | 2013-02-06 15:23:09 +0000 |
commit | 36ba0ff4b632cff7424693b9818bcc8d9ea7798a (patch) | |
tree | 2e75faca53242b14d6e02422aa41fd4694b5c2e9 | |
parent | 8ff690ab478b33e0d830a6203de12d191d94f8ff (diff) |
Fix a formatting bug caused by comments in expressions.
This fixes llvm.org/PR15162.
Before:
bool aaaaaaaaaaaaa = // comment
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa || aaaaaaaaaaaaaaaaaaaaaaaaaaaa ||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaa;
After:
bool aaaaaaaaaaaaa = // comment
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa || aaaaaaaaaaaaaaaaaaaaaaaaaaaa ||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa || aaaaaaaaaaaaaaaaaaaaaaaaaaaaa;
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174508 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Format/Format.cpp | 1 | ||||
-rw-r--r-- | unittests/Format/FormatTest.cpp | 15 |
2 files changed, 16 insertions, 0 deletions
diff --git a/lib/Format/Format.cpp b/lib/Format/Format.cpp index 99251f5c85..eac822c5b7 100644 --- a/lib/Format/Format.cpp +++ b/lib/Format/Format.cpp @@ -494,6 +494,7 @@ private: // FIXME: Do we need to do this for assignments nested in other // expressions? if (RootToken.isNot(tok::kw_for) && ParenLevel == 0 && + !isTrailingComment(Current) && (getPrecedence(Previous) == prec::Assignment || Previous.is(tok::kw_return))) State.Stack.back().AssignmentColumn = State.Column + Spaces; diff --git a/unittests/Format/FormatTest.cpp b/unittests/Format/FormatTest.cpp index 0f469836f5..cd3bf17df2 100644 --- a/unittests/Format/FormatTest.cpp +++ b/unittests/Format/FormatTest.cpp @@ -456,6 +456,10 @@ TEST_F(FormatTest, UnderstandsSingleLineComments) { verifyFormat("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa =\n" " // Comment inside a statement.\n" " bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb;"); + verifyFormat( + "bool aaaaaaaaaaaaa = // comment\n" + " aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa || aaaaaaaaaaaaaaaaaaaaaaaaaaaa ||\n" + " aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa || aaaaaaaaaaaaaaaaaaaaaaaaaaaaa;"); EXPECT_EQ("void f() { // This does something ..\n" "}\n" @@ -1960,6 +1964,17 @@ TEST_F(FormatTest, BlockComments) { " 2, /* comment 2 */ \n" " 3, /* comment 3 */\n" "aaaa, bbbb );", getGoogleStyle())); + verifyFormat( + "bool aaaaaaaaaaaaa = /* comment: */ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ||\n" + " aaaaaaaaaaaaaaaaaaaaaaaaaaaa;"); + EXPECT_EQ( + "bool aaaaaaaaaaaaa = /* trailing comment */\n" + " aaaaaaaaaaaaaaaaaaaaaaaaaaa || aaaaaaaaaaaaaaaaaaaaaaaaa ||\n" + " aaaaaaaaaaaaaaaaaaaaaaaaaaaa || aaaaaaaaaaaaaaaaaaaaaaaaaa;", + format( + "bool aaaaaaaaaaaaa = /* trailing comment */\n" + " aaaaaaaaaaaaaaaaaaaaaaaaaaa||aaaaaaaaaaaaaaaaaaaaaaaaa ||\n" + " aaaaaaaaaaaaaaaaaaaaaaaaaaaa || aaaaaaaaaaaaaaaaaaaaaaaaaa;")); } TEST_F(FormatTest, FormatStarDependingOnContext) { |