Explorar o código

clang-format: Quickfix for braced init lists detected as lambdas.

Before:
  constexpr char hello [] { "hello" };

After:
  constexpr char hello[]{ "hello" };

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190046 91177308-0d34-0410-b5e6-96231b3b80d8
Daniel Jasper %!s(int64=12) %!d(string=hai) anos
pai
achega
2d65705ed0
Modificáronse 2 ficheiros con 9 adicións e 0 borrados
  1. 6 0
      lib/Format/UnwrappedLineParser.cpp
  2. 3 0
      unittests/Format/FormatTest.cpp

+ 6 - 0
lib/Format/UnwrappedLineParser.cpp

@@ -674,6 +674,12 @@ void UnwrappedLineParser::parseStructuralElement() {
 }
 
 void UnwrappedLineParser::tryToParseLambda() {
+  // FIXME: This is a dirty way to access the previous token. Find a better
+  // solution.
+  if (!Line->Tokens.empty() && Line->Tokens.back().Tok->is(tok::identifier)) {
+    nextToken();
+    return;
+  }
   assert(FormatTok->is(tok::l_square));
   FormatToken &LSquare = *FormatTok;
   if (!tryToParseLambdaIntroducer())

+ 3 - 0
unittests/Format/FormatTest.cpp

@@ -6300,6 +6300,9 @@ TEST_F(FormatTest, FormatsLambdas) {
                "        x.end(),   //\n"
                "        [&](int, int) { return 1; });\n"
                "}\n");
+
+  // Not lambdas.
+  verifyFormat("constexpr char hello[]{ \"hello\" };");
 }
 
 TEST_F(FormatTest, FormatsBlocks) {