From: Daniel Jasper Date: Fri, 31 May 2013 10:09:55 +0000 (+0000) Subject: Fix detection/formatting of braced lists in ternary expressions. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=eb48366d41a6dcca236f1e28aea61efd569a3374;p=clang Fix detection/formatting of braced lists in ternary expressions. Before: foo = aaaaaaaaaaa ? vector { aaaaaaaaaaaaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaaaaa, aaaaa } : vector{ bbbbbbbbbbbbbbbbbbbbbbbbbbb, bbbbbbbbbbbbbbbbbbbb, bbbbb }; After: foo = aaaaaaaaaaa ? vector{ aaaaaaaaaaaaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaaaaa, aaaaa } : vector{ bbbbbbbbbbbbbbbbbbbbbbbbbbb, bbbbbbbbbbbbbbbbbbbb, bbbbb }; git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@182992 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Format/UnwrappedLineParser.cpp b/lib/Format/UnwrappedLineParser.cpp index 3b72bef601..618f54a518 100644 --- a/lib/Format/UnwrappedLineParser.cpp +++ b/lib/Format/UnwrappedLineParser.cpp @@ -264,8 +264,8 @@ void UnwrappedLineParser::calculateBraceTypes() { // Thus, if the parent is a braced init list, we consider all // brace blocks inside it braced init list. That works good enough // for now, but we will need to fix it to correctly handle lambdas. - if (NextTok->Tok.is(tok::comma) || NextTok->Tok.is(tok::semi) || - NextTok->Tok.is(tok::r_paren) || NextTok->Tok.is(tok::l_brace)) + if (NextTok->isOneOf(tok::comma, tok::semi, tok::r_paren, + tok::l_brace, tok::colon)) LBraces[LBraceStack.back()] = BS_BracedInit; else LBraces[LBraceStack.back()] = BS_Block; diff --git a/unittests/Format/FormatTest.cpp b/unittests/Format/FormatTest.cpp index bfe5459e37..8b306f240c 100644 --- a/unittests/Format/FormatTest.cpp +++ b/unittests/Format/FormatTest.cpp @@ -3437,6 +3437,11 @@ TEST_F(FormatTest, LayoutCxx11ConstructorBraceInitializers) { verifyFormat("class Class {\n" " T member = { arg1, arg2 };\n" "};"); + verifyFormat( + "foo = aaaaaaaaaaa ? vector{ aaaaaaaaaaaaaaaaaaaaaaaaaaa,\n" + " aaaaaaaaaaaaaaaaaaaa, aaaaa }\n" + " : vector{ bbbbbbbbbbbbbbbbbbbbbbbbbbb,\n" + " bbbbbbbbbbbbbbbbbbbb, bbbbb };"); FormatStyle NoSpaces = getLLVMStyle(); NoSpaces.SpacesInBracedLists = false;