diff options
-rw-r--r-- | lib/Format/Format.cpp | 3 | ||||
-rw-r--r-- | unittests/Format/FormatTest.cpp | 7 |
2 files changed, 9 insertions, 1 deletions
diff --git a/lib/Format/Format.cpp b/lib/Format/Format.cpp index ea96b8f59d..e3f7b4b2e2 100644 --- a/lib/Format/Format.cpp +++ b/lib/Format/Format.cpp @@ -654,7 +654,8 @@ private: AvoidBinPacking = false; } else { NewIndent = 4 + State.Stack.back().LastSpace; - AvoidBinPacking = !Style.BinPackParameters; + AvoidBinPacking = + !Style.BinPackParameters || State.Stack.back().AvoidBinPacking; } State.Stack.push_back( ParenState(NewIndent, State.Stack.back().LastSpace, AvoidBinPacking, diff --git a/unittests/Format/FormatTest.cpp b/unittests/Format/FormatTest.cpp index 81833e5e02..929e3c20ba 100644 --- a/unittests/Format/FormatTest.cpp +++ b/unittests/Format/FormatTest.cpp @@ -1173,6 +1173,13 @@ TEST_F(FormatTest, ConstructorInitializers) { " some_other_var_(var + 1) { // lined up\n" "}", OnePerLine); + verifyFormat("Constructor()\n" + " : aaaaa(aaaaaa),\n" + " aaaaa(aaaaaa),\n" + " aaaaa(aaaaaa),\n" + " aaaaa(aaaaaa),\n" + " aaaaa(aaaaaa) {}", + OnePerLine); // This test takes VERY long when memoization is broken. OnePerLine.BinPackParameters = false; |