From 8dc688335dbc5db7bea08818faeb663b0f18acdf Mon Sep 17 00:00:00 2001 From: Daniel Jasper Date: Mon, 4 Jan 2016 07:29:40 +0000 Subject: [PATCH] clang-format: Fix corner case for lambda assignments. Before: std::function my_lambda = []( const string &s) { return s; }; After: std::function my_lambda = [](const string &s) { return s; }; git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@256739 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Format/TokenAnnotator.cpp | 2 +- unittests/Format/FormatTest.cpp | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/Format/TokenAnnotator.cpp b/lib/Format/TokenAnnotator.cpp index a3a363107b..a9b7656889 100644 --- a/lib/Format/TokenAnnotator.cpp +++ b/lib/Format/TokenAnnotator.cpp @@ -1722,7 +1722,7 @@ unsigned TokenAnnotator::splitPenalty(const AnnotatedLine &Line, return 25; // Slightly prefer formatting local lambda definitions like functions. if (Right.is(TT_LambdaLSquare) && Left.is(tok::equal)) - return 50; + return 35; if (!Right.isOneOf(TT_ObjCMethodExpr, TT_LambdaLSquare, TT_ArrayInitializerLSquare)) return 500; diff --git a/unittests/Format/FormatTest.cpp b/unittests/Format/FormatTest.cpp index 22c469815b..5c5c986a2c 100644 --- a/unittests/Format/FormatTest.cpp +++ b/unittests/Format/FormatTest.cpp @@ -10512,6 +10512,8 @@ TEST_F(FormatTest, FormatsLambdas) { verifyFormat("auto my_lambda = [](const string &some_parameter) {\n" " return some_parameter.size();\n" "};"); + verifyFormat("std::function my_lambda =\n" + " [](const string &s) { return s; };"); verifyFormat("int i = aaaaaa ? 1 //\n" " : [] {\n" " return 2; //\n" -- 2.40.0