]> granicus.if.org Git - clang/commitdiff
clang-format: Support variadic lambda captures.
authorDaniel Jasper <djasper@google.com>
Tue, 10 Jun 2014 06:39:03 +0000 (06:39 +0000)
committerDaniel Jasper <djasper@google.com>
Tue, 10 Jun 2014 06:39:03 +0000 (06:39 +0000)
Before:
  return [ i, args... ]{};

After:
  return [i, args...] {};

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@210514 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Format/UnwrappedLineParser.cpp
unittests/Format/FormatTest.cpp

index d0750af1b0fa4e11590d5bc86c8e10a24300ed6f..6a8156f92eed32170188b75564513add3b9ebdf6 100644 (file)
@@ -891,6 +891,8 @@ bool UnwrappedLineParser::tryToParseLambdaIntroducer() {
     if (!FormatTok->isOneOf(tok::identifier, tok::kw_this))
       return false;
     nextToken();
+    if (FormatTok->is(tok::ellipsis))
+      nextToken();
     if (FormatTok->is(tok::comma)) {
       nextToken();
     } else if (FormatTok->is(tok::r_square)) {
index 584ecba98661ed484f09f214f87799a102121cb1..02636a70160b3c7c0f5a626155874aad8d4105ad 100644 (file)
@@ -8709,6 +8709,9 @@ TEST_F(FormatTest, FormatsLambdas) {
                "               return j;\n"
                "             });");
 
+  // More complex introducers.
+  verifyFormat("return [i, args...] {};");
+
   // Not lambdas.
   verifyFormat("constexpr char hello[]{\"hello\"};");
   verifyFormat("double &operator[](int i) { return 0; }\n"