summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Jasper <djasper@google.com>2016-01-04 07:29:40 +0000
committerDaniel Jasper <djasper@google.com>2016-01-04 07:29:40 +0000
commit9c8a774c4804e3379e76f6846e3aa0fa912d96a9 (patch)
tree85eca528a0072daad56b187848e9286c71861929
parent06a269574c35f4d36236893e5cb00e466ed738c5 (diff)
downloadbcm5719-llvm-9c8a774c4804e3379e76f6846e3aa0fa912d96a9.tar.gz
bcm5719-llvm-9c8a774c4804e3379e76f6846e3aa0fa912d96a9.zip
clang-format: Fix corner case for lambda assignments.
Before: std::function<std::string(const std::string &)> my_lambda = []( const string &s) { return s; }; After: std::function<std::string(const std::string &)> my_lambda = [](const string &s) { return s; }; llvm-svn: 256739
-rw-r--r--clang/lib/Format/TokenAnnotator.cpp2
-rw-r--r--clang/unittests/Format/FormatTest.cpp2
2 files changed, 3 insertions, 1 deletions
diff --git a/clang/lib/Format/TokenAnnotator.cpp b/clang/lib/Format/TokenAnnotator.cpp
index a3a363107be..a9b7656889a 100644
--- a/clang/lib/Format/TokenAnnotator.cpp
+++ b/clang/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/clang/unittests/Format/FormatTest.cpp b/clang/unittests/Format/FormatTest.cpp
index 22c469815b1..5c5c986a2cc 100644
--- a/clang/unittests/Format/FormatTest.cpp
+++ b/clang/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<std::string(const std::string &)> my_lambda =\n"
+ " [](const string &s) { return s; };");
verifyFormat("int i = aaaaaa ? 1 //\n"
" : [] {\n"
" return 2; //\n"
OpenPOWER on IntegriCloud