]> granicus.if.org Git - clang/commitdiff
Fix detection/formatting of braced lists in ternary expressions.
authorDaniel Jasper <djasper@google.com>
Fri, 31 May 2013 10:09:55 +0000 (10:09 +0000)
committerDaniel Jasper <djasper@google.com>
Fri, 31 May 2013 10:09:55 +0000 (10:09 +0000)
Before:
foo = aaaaaaaaaaa ? vector<int> {
  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa, aaaaa
}
: vector<int>{ bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb, bbbbb };

After:
foo = aaaaaaaaaaa ? vector<int>{ aaaaaaaaaaaaaaaaaaaaaaaaaaa,
                                 aaaaaaaaaaaaaaaaaaaa, aaaaa }
                  : vector<int>{ bbbbbbbbbbbbbbbbbbbbbbbbbbb,
                                 bbbbbbbbbbbbbbbbbbbb, bbbbb };

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@182992 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Format/UnwrappedLineParser.cpp
unittests/Format/FormatTest.cpp

index 3b72bef6012765488972d93819cf85e3ece9a53a..618f54a5184f587195d6c614e30376bfc57bba84 100644 (file)
@@ -264,8 +264,8 @@ void UnwrappedLineParser::calculateBraceTypes() {
           // Thus, if the parent is a braced init list, we consider all
           // brace blocks inside it braced init list. That works good enough
           // for now, but we will need to fix it to correctly handle lambdas.
-          if (NextTok->Tok.is(tok::comma) || NextTok->Tok.is(tok::semi) ||
-              NextTok->Tok.is(tok::r_paren) || NextTok->Tok.is(tok::l_brace))
+          if (NextTok->isOneOf(tok::comma, tok::semi, tok::r_paren,
+                               tok::l_brace, tok::colon))
             LBraces[LBraceStack.back()] = BS_BracedInit;
           else
             LBraces[LBraceStack.back()] = BS_Block;
index bfe5459e37ab9a21c8d0477b9f2068e71b3e4bc3..8b306f240c7f347c43f7df15ea421e09cee43fdd 100644 (file)
@@ -3437,6 +3437,11 @@ TEST_F(FormatTest, LayoutCxx11ConstructorBraceInitializers) {
     verifyFormat("class Class {\n"
                  "  T member = { arg1, arg2 };\n"
                  "};");
+    verifyFormat(
+        "foo = aaaaaaaaaaa ? vector<int>{ aaaaaaaaaaaaaaaaaaaaaaaaaaa,\n"
+        "                                 aaaaaaaaaaaaaaaaaaaa, aaaaa }\n"
+        "                  : vector<int>{ bbbbbbbbbbbbbbbbbbbbbbbbbbb,\n"
+        "                                 bbbbbbbbbbbbbbbbbbbb, bbbbb };");
 
     FormatStyle NoSpaces = getLLVMStyle();
     NoSpaces.SpacesInBracedLists = false;