From 844e62bd1fff9215bb37d8a1bf24867837861ca4 Mon Sep 17 00:00:00 2001 From: Daniel Jasper Date: Fri, 22 Nov 2013 07:26:53 +0000 Subject: [PATCH] clang-format: Recognize braced lists with trailing function call. Before: int count = set { f(), g(), h() } .size(); After: int count = set{f(), g(), h()}.size(); git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195417 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Format/UnwrappedLineParser.cpp | 2 +- unittests/Format/FormatTest.cpp | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/Format/UnwrappedLineParser.cpp b/lib/Format/UnwrappedLineParser.cpp index d074308101..016c4db07b 100644 --- a/lib/Format/UnwrappedLineParser.cpp +++ b/lib/Format/UnwrappedLineParser.cpp @@ -322,7 +322,7 @@ void UnwrappedLineParser::calculateBraceTypes() { // (for example while parsing lambdas). // // We exclude + and - as they can be ObjC visibility modifiers. - if (NextTok->isOneOf(tok::comma, tok::semi, tok::r_paren, + if (NextTok->isOneOf(tok::comma, tok::semi, tok::r_paren, tok::period, tok::r_square, tok::l_brace, tok::colon) || (NextTok->isBinaryOperator() && !NextTok->isOneOf(tok::plus, tok::minus))) { diff --git a/unittests/Format/FormatTest.cpp b/unittests/Format/FormatTest.cpp index ab3303ea92..b0b1c0f561 100644 --- a/unittests/Format/FormatTest.cpp +++ b/unittests/Format/FormatTest.cpp @@ -4671,6 +4671,7 @@ TEST_F(FormatTest, LayoutCxx11ConstructorBraceInitializers) { verifyFormat("new int[3]{ 1, 2, 3 };"); verifyFormat("return { arg1, arg2 };"); verifyFormat("return { arg1, SomeType{ parameter } };"); + verifyFormat("int count = set{ f(), g(), h() }.size();"); verifyFormat("new T{ arg1, arg2 };"); verifyFormat("f(MyMap[{ composite, key }]);"); verifyFormat("class Class {\n" @@ -4706,6 +4707,7 @@ TEST_F(FormatTest, LayoutCxx11ConstructorBraceInitializers) { verifyFormat("new int[3]{1, 2, 3};", NoSpaces); verifyFormat("return {arg1, arg2};", NoSpaces); verifyFormat("return {arg1, SomeType{parameter}};", NoSpaces); + verifyFormat("int count = set{f(), g(), h()}.size();", NoSpaces); verifyFormat("new T{arg1, arg2};", NoSpaces); verifyFormat("f(MyMap[{composite, key}]);", NoSpaces); verifyFormat("class Class {\n" -- 2.40.0