]> granicus.if.org Git - clang/commitdiff
clang-format: Fix binary operator detection before lambdas.
authorDaniel Jasper <djasper@google.com>
Thu, 8 May 2014 08:50:10 +0000 (08:50 +0000)
committerDaniel Jasper <djasper@google.com>
Thu, 8 May 2014 08:50:10 +0000 (08:50 +0000)
Before:
  bool foo = true&& [] { return false; }();

After:
  bool foo = true && [] { return false; }();

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

lib/Format/TokenAnnotator.cpp
unittests/Format/FormatTest.cpp

index 2f8457c61b3afa21f7aaa947c1fa42a08a93758d..2d94c7e6b2ab506e6a2399fb4b959158683a973a 100644 (file)
@@ -904,7 +904,7 @@ private:
         PrevToken->Type == TT_UnaryOperator || PrevToken->Type == TT_CastRParen)
       return TT_UnaryOperator;
 
-    if (NextToken->is(tok::l_square))
+    if (NextToken->is(tok::l_square) && NextToken->Type != TT_LambdaLSquare)
       return TT_PointerOrReference;
 
     if (PrevToken->is(tok::r_paren) && PrevToken->MatchingParen &&
index 1e9251d524bd2b8520b3f3a3aa7467cff8a02c74..3ec1ea5084895441a30e53400ac0981e04054064 100644 (file)
@@ -4612,6 +4612,7 @@ TEST_F(FormatTest, UnderstandsUsesOfStarAndAmp) {
   verifyIndependentOfContext("void f(int *a = d * e, int *b = c * d);");
   verifyFormat("for (char **a = b; *a; ++a) {\n}");
   verifyFormat("for (; a && b;) {\n}");
+  verifyFormat("bool foo = true && [] { return false; }();");
 
   verifyFormat(
       "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(\n"