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.

llvm-svn: 174291
This commit is contained in:
Daniel Jasper 2013-02-03 18:07:15 +00:00
parent 2aedfbd177
commit 1ca05ccf68
2 changed files with 6 additions and 1 deletions

View File

@ -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) {

View File

@ -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.