diff options
author | Daniel Jasper <djasper@google.com> | 2013-02-21 15:00:29 +0000 |
---|---|---|
committer | Daniel Jasper <djasper@google.com> | 2013-02-21 15:00:29 +0000 |
commit | 7d81281fc39f6d40d86be6600adba13c05b4a639 (patch) | |
tree | 59b902e3f6861ec73f781d3547f75bc92a8fddcf /unittests/Format/FormatTest.cpp | |
parent | 3aada3c305a0f0ecfad2e4d0cf977ee9d2b2c71f (diff) |
Allow breaking between type and name in for loops.
This fixes llvm.org/PR15033.
Also: Always break before a parameter, if the previous parameter was
split over multiple lines. This was necessary to make the right
decisions in for-loops, almost always makes the code more readable and
also fixes llvm.org/PR14873.
Before:
for (llvm::ArrayRef<NamedDecl *>::iterator I = FD->getDeclsInPrototypeScope()
.begin(), E = FD->getDeclsInPrototypeScope().end();
I != E; ++I) {
}
foo(bar(bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,
ccccccccccccccccccccccccccccc), d, bar(e, f));
After:
for (llvm::ArrayRef<NamedDecl *>::iterator
I = FD->getDeclsInPrototypeScope().begin(),
E = FD->getDeclsInPrototypeScope().end();
I != E; ++I) {
}
foo(bar(bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,
ccccccccccccccccccccccccccccc),
d, bar(e, f));
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175741 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'unittests/Format/FormatTest.cpp')
-rw-r--r-- | unittests/Format/FormatTest.cpp | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/unittests/Format/FormatTest.cpp b/unittests/Format/FormatTest.cpp index ca522084d5..90813042da 100644 --- a/unittests/Format/FormatTest.cpp +++ b/unittests/Format/FormatTest.cpp @@ -278,9 +278,13 @@ 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" + verifyFormat("for (aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\n" + " aaaaaaaaaaa = aaaaaaaaaaaaaaaa.aaaaaaaaaaaaaaa;\n" " aaaaaaaaaaa != aaaaaaaaaaaaaaaaaaa; ++aaaaaaaaaaa) {\n}"); + verifyFormat("for (llvm::ArrayRef<NamedDecl *>::iterator\n" + " I = FD->getDeclsInPrototypeScope().begin(),\n" + " E = FD->getDeclsInPrototypeScope().end();\n" + " I != E; ++I) {\n}"); // FIXME: Not sure whether we want extra identation in line 3 here: verifyFormat( @@ -1012,7 +1016,8 @@ TEST_F(FormatTest, LayoutStatementsAroundPreprocessorDirectives) { "#define A B\n" " withMoreParamters,\n" " whichStronglyInfluenceTheLayout),\n" - " andMoreParameters), trailing);", + " andMoreParameters),\n" + " trailing);", getLLVMStyleWithColumns(69)); } @@ -1398,8 +1403,8 @@ TEST_F(FormatTest, BreaksConditionalExpressions) { "unsigned Indent =\n" " format(TheLine.First, IndentForLevel[TheLine.Level] >= 0\n" " ? IndentForLevel[TheLine.Level]\n" - " : TheLine * 2, TheLine.InPPDirective,\n" - " PreviousEndOfLineColumn);", + " : TheLine * 2,\n" + " TheLine.InPPDirective, PreviousEndOfLineColumn);", getLLVMStyleWithColumns(70)); } @@ -1414,11 +1419,10 @@ TEST_F(FormatTest, DeclarationsOfMultipleVariables) { " aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaa),\n" " bbbbbbbbbbbbbbbbbbbbbbbbb =\n" " bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb(bbbbbbbbbbbbbbbb);"); - - // FIXME: This is bad as we hide "d". verifyFormat( - "bool aaaaaaaaaaaaaaaaaaaaa = bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb &&\n" - " cccccccccccccccccccccccccccc, d = e && f;"); + "bool aaaaaaaaaaaaaaaaaaaaa =\n" + " bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb && cccccccccccccccccccccccccccc,\n" + " d = e && f;"); } @@ -2066,11 +2070,13 @@ TEST_F(FormatTest, LayoutBraceInitializersInReturnStatement) { } TEST_F(FormatTest, LayoutTokensFollowingBlockInParentheses) { + // FIXME: This is bad, find a better and more generic solution. verifyFormat( "Aaa({\n" " int i;\n" - "}, aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,\n" - " ccccccccccccccccc));"); + "},\n" + " aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb,\n" + " ccccccccccccccccc));"); } TEST_F(FormatTest, PullTrivialFunctionDefinitionsIntoSingleLine) { |