From 6bd0232b4f58e7ad40f687b09b0eb897bcc3fd1e Mon Sep 17 00:00:00 2001 From: Daniel Jasper Date: Sun, 3 Feb 2013 18:07:15 +0000 Subject: [PATCH] Fix bug in formatting of nested initializers. We can now format: SomeArrayOfSomeType a = { { { 1, 2, 3 } }, { { 1, 2, 3 } }, { { 111111111111111111111111111111, 222222222222222222222222222222, 333333333333333333333333333333 } }, { { 1, 2, 3 } }, { { 1, 2, 3 } } }; Before, we did strange things there. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174291 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Format/Format.cpp | 1 - unittests/Format/FormatTest.cpp | 6 ++++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/Format/Format.cpp b/lib/Format/Format.cpp index d638221de6..6cfa0d8823 100644 --- a/lib/Format/Format.cpp +++ b/lib/Format/Format.cpp @@ -528,7 +528,6 @@ private: if (Current.is(tok::question)) State.Stack.back().QuestionColumn = State.Column; if (Current.is(tok::l_brace) && Current.MatchingParen != NULL && - Current.Children[0].isNot(tok::l_brace) && !Current.MatchingParen->MustBreakBefore) { AnnotatedToken *End = Current.MatchingParen; while (!End->Children.empty() && !End->Children[0].CanBreakBefore) { diff --git a/unittests/Format/FormatTest.cpp b/unittests/Format/FormatTest.cpp index bffbbf5331..ef97df951a 100644 --- a/unittests/Format/FormatTest.cpp +++ b/unittests/Format/FormatTest.cpp @@ -693,6 +693,12 @@ TEST_F(FormatTest, NestedStaticInitializers) { " 222222222222222222222222222222,\n" " 333333333333333333333333333333 },\n" " { 1, 2, 3 }, { 1, 2, 3 } } };"); + verifyFormat( + "SomeArrayOfSomeType a = { { { 1, 2, 3 } }, { { 1, 2, 3 } },\n" + " { { 111111111111111111111111111111,\n" + " 222222222222222222222222222222,\n" + " 333333333333333333333333333333 } },\n" + " { { 1, 2, 3 } }, { { 1, 2, 3 } } };"); // FIXME: We might at some point want to handle this similar to parameter // lists, where we have an option to put each on a single line. -- 2.40.0