From: Daniel Jasper Date: Wed, 27 Aug 2014 11:53:26 +0000 (+0000) Subject: clang-format: Fix regression in formatting of braced initializers. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=702b97059f1b62ea680f8a1ced9d302da1d20935;p=clang clang-format: Fix regression in formatting of braced initializers. Before: Node n{1, Node{1000}, // 2}; After: Node n{1, Node{1000}, // 2}; git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@216540 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Format/TokenAnnotator.cpp b/lib/Format/TokenAnnotator.cpp index be4dc88600..ac95f72b60 100644 --- a/lib/Format/TokenAnnotator.cpp +++ b/lib/Format/TokenAnnotator.cpp @@ -313,7 +313,9 @@ private: updateParameterCount(Left, CurrentToken); if (CurrentToken->isOneOf(tok::colon, tok::l_brace)) { FormatToken *Previous = CurrentToken->getPreviousNonComment(); - if (Previous->is(tok::identifier)) + if ((CurrentToken->is(tok::colon) || + Style.Language == FormatStyle::LK_Proto) && + Previous->is(tok::identifier)) Previous->Type = TT_SelectorName; if (CurrentToken->is(tok::colon)) Left->Type = TT_DictLiteral; diff --git a/unittests/Format/FormatTest.cpp b/unittests/Format/FormatTest.cpp index bf69d8b55e..7f1cc5a829 100644 --- a/unittests/Format/FormatTest.cpp +++ b/unittests/Format/FormatTest.cpp @@ -5466,6 +5466,8 @@ TEST_F(FormatTest, LayoutCxx11BraceInitializers) { verifyFormat("int foo(int i) { return fo1{}(i); }"); verifyFormat("auto i = decltype(x){};"); verifyFormat("std::vector v = {1, 0 /* comment */};"); + verifyFormat("Node n{1, Node{1000}, //\n" + " 2};"); // In combination with BinPackParameters = false. FormatStyle NoBinPacking = getLLVMStyle();