diff options
Diffstat (limited to 'clang')
-rw-r--r-- | clang/lib/Format/Format.cpp | 12 | ||||
-rw-r--r-- | clang/unittests/Format/FormatTest.cpp | 12 |
2 files changed, 18 insertions, 6 deletions
diff --git a/clang/lib/Format/Format.cpp b/clang/lib/Format/Format.cpp index 21997817354..8eebda0740b 100644 --- a/clang/lib/Format/Format.cpp +++ b/clang/lib/Format/Format.cpp @@ -723,6 +723,12 @@ private: if (Left.Type == TT_RangeBasedForLoopColon) return 5; + if (Right.is(tok::arrow) || Right.is(tok::period)) { + if (Left.is(tok::r_paren) && Line.Type == LT_BuilderTypeCall) + return 5; // Should be smaller than breaking at a nested comma. + return 150; + } + // In for-loops, prefer breaking at ',' and ';'. if (RootToken.is(tok::kw_for) && (Left.isNot(tok::comma) && Left.isNot(tok::semi))) @@ -753,12 +759,6 @@ private: if (Level != prec::Unknown) return Level; - if (Right.is(tok::arrow) || Right.is(tok::period)) { - if (Left.is(tok::r_paren) && Line.Type == LT_BuilderTypeCall) - return 5; // Should be smaller than breaking at a nested comma. - return 150; - } - return 3; } diff --git a/clang/unittests/Format/FormatTest.cpp b/clang/unittests/Format/FormatTest.cpp index bdc5f9a5c55..63110bbfbe0 100644 --- a/clang/unittests/Format/FormatTest.cpp +++ b/clang/unittests/Format/FormatTest.cpp @@ -239,6 +239,18 @@ TEST_F(FormatTest, FormatsForLoop) { verifyFormat( "for (MachineFun::iterator IIII = PrevIt, EEEE = F.end(); IIII != EEEE;\n" " ++IIIII) {\n}"); + verifyFormat( + "for (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaa =\n" + " aaaaaaaaaaaaaaaa.aaaaaaaaaaaaaaa;\n" + " aaaaaaaaaaa != aaaaaaaaaaaaaaaaaaa; ++aaaaaaaaaaa) {\n}"); + + // FIXME: Not sure whether we want extra identation in line 3 here: + verifyFormat( + "for (aaaaaaaaaaaaaaaaa aaaaaaaaaaa = aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;\n" + " aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa !=\n" + " aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(\n" + " aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa);\n" + " ++aaaaaaaaaaa) {\n}"); } TEST_F(FormatTest, RangeBasedForLoops) { |