]> granicus.if.org Git - clang/commitdiff
clang-format: Fix regression in formatting of braced initializers.
authorDaniel Jasper <djasper@google.com>
Wed, 27 Aug 2014 11:53:26 +0000 (11:53 +0000)
committerDaniel Jasper <djasper@google.com>
Wed, 27 Aug 2014 11:53:26 +0000 (11:53 +0000)
Before:
  Node n{1, Node{1000}, //
                2};

After:
  Node n{1, Node{1000}, //
         2};

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

lib/Format/TokenAnnotator.cpp
unittests/Format/FormatTest.cpp

index be4dc886008c0e7d4b7a2cd23f47fa4c604444c7..ac95f72b60faedeba80ed77ee39f946258a5ed6d 100644 (file)
@@ -313,7 +313,9 @@ private:
         updateParameterCount(Left, CurrentToken);
         if (CurrentToken->isOneOf(tok::colon, tok::l_brace)) {
           FormatToken *Previous = CurrentToken->getPreviousNonComment();
-          if (Previous->is(tok::identifier))
+          if ((CurrentToken->is(tok::colon) ||
+               Style.Language == FormatStyle::LK_Proto) &&
+              Previous->is(tok::identifier))
             Previous->Type = TT_SelectorName;
           if (CurrentToken->is(tok::colon))
             Left->Type = TT_DictLiteral;
index bf69d8b55ed62ba1dd4de0aaa9c179124df7b8e5..7f1cc5a82983b6e2c7c9318ee189454dc68a7b3d 100644 (file)
@@ -5466,6 +5466,8 @@ TEST_F(FormatTest, LayoutCxx11BraceInitializers) {
   verifyFormat("int foo(int i) { return fo1{}(i); }");
   verifyFormat("auto i = decltype(x){};");
   verifyFormat("std::vector<int> v = {1, 0 /* comment */};");
+  verifyFormat("Node n{1, Node{1000}, //\n"
+               "       2};");
 
   // In combination with BinPackParameters = false.
   FormatStyle NoBinPacking = getLLVMStyle();