]> granicus.if.org Git - clang/commitdiff
Re-add hack that caused regression.
authorDaniel Jasper <djasper@google.com>
Mon, 25 Feb 2013 15:59:54 +0000 (15:59 +0000)
committerDaniel Jasper <djasper@google.com>
Mon, 25 Feb 2013 15:59:54 +0000 (15:59 +0000)
This fixes llvm.org/PR15350.

Before:
Constructor(int Parameter = 0)
    : aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaa),
                aaaaaaaaaaaa(aaaaaaaaaaaaaaaaa) {}

After:
Constructor(int Parameter = 0)
    : aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaa),
      aaaaaaaaaaaa(aaaaaaaaaaaaaaaaa) {}

I think the correct solution is to put the VariablePos into
ParenState, not LineState. Added FIXME.

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

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

index 60fe957a1264b15eea4e2665d9a8b057c32481db..00ec79f5e4592dc84678b2aa60526a339d0380c0 100644 (file)
@@ -552,7 +552,9 @@ private:
           State.Stack.back().BreakBeforeParameter = true;
       }
     } else {
-      if (Current.is(tok::equal))
+      // FIXME: Put VariablePos into ParenState and remove second part of if().
+      if (Current.is(tok::equal) &&
+          (RootToken.is(tok::kw_for) || State.ParenLevel == 0))
         State.VariablePos = State.Column - Previous.FormatTok.TokenLength;
 
       unsigned Spaces = State.NextToken->SpacesRequiredBefore;
index 94ac4cf59f5dbf4761e1b7dcef24be599aa10bed..17dae0ffe646fa32ffed3600a6c2ab37ab2818b4 100644 (file)
@@ -1132,6 +1132,10 @@ TEST_F(FormatTest, ConstructorInitializers) {
                "    : aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(\n"
                "          aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) {}");
 
+  verifyFormat("Constructor(int Parameter = 0)\n"
+               "    : aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaa),\n"
+               "      aaaaaaaaaaaa(aaaaaaaaaaaaaaaaa) {}");
+
   // Here a line could be saved by splitting the second initializer onto two
   // lines, but that is not desireable.
   verifyFormat(