]> granicus.if.org Git - clang/commitdiff
Clang-format: detect unbalanced braces.
authorAlexander Kornienko <alexfh@google.com>
Thu, 6 Dec 2012 17:49:17 +0000 (17:49 +0000)
committerAlexander Kornienko <alexfh@google.com>
Thu, 6 Dec 2012 17:49:17 +0000 (17:49 +0000)
Reviewers: klimek, djasper

Reviewed By: klimek

CC: cfe-commits, silvas
Differential Revision: http://llvm-reviews.chandlerc.com/D176

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

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

index 99e58321cd7fb50a42024c21343fb5795e69ac0d..425e15b81f99dddaf41f5670a42b2616e2066a1b 100644 (file)
@@ -52,8 +52,8 @@ bool UnwrappedLineParser::parseLevel() {
       addUnwrappedLine();
       break;
     case tok::r_brace:
-      // FIXME: We need a test when it has to be "return Error;"
-      return false;
+      // Stray '}' is an error.
+      return true;
     default:
       parseStatement();
       break;
@@ -63,6 +63,7 @@ bool UnwrappedLineParser::parseLevel() {
 }
 
 bool UnwrappedLineParser::parseBlock() {
+  assert(FormatTok.Tok.is(tok::l_brace) && "'{' expected");
   nextToken();
 
   // FIXME: Remove this hack to handle namespaces.
index a2a37cf1a7014fceb70a7001ec6bb05df6e928cd..c385e353d6930c11b25be40c3ba6f652b69d55f7 100644 (file)
@@ -428,6 +428,7 @@ TEST_F(FormatTest, IncorrectCodeErrorDetection) {
   EXPECT_EQ("{\n{\n}\n", format("{\n{\n}\n"));
   EXPECT_EQ("{\n  {\n}\n", format("{\n  {\n}\n"));
   EXPECT_EQ("{\n  {\n  }\n", format("{\n  {\n  }\n"));
+  EXPECT_EQ("{\n  {\n    }\n  }\n}\n", format("{\n  {\n    }\n  }\n}\n"));
 
   FormatStyle Style = getLLVMStyle();
   Style.ColumnLimit = 10;