From a3a2b3a1e86a93d2044106046a4dca13a3558fba Mon Sep 17 00:00:00 2001 From: Alexander Kornienko Date: Thu, 6 Dec 2012 17:49:17 +0000 Subject: [PATCH] Clang-format: detect unbalanced braces. 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 | 5 +++-- unittests/Format/FormatTest.cpp | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/Format/UnwrappedLineParser.cpp b/lib/Format/UnwrappedLineParser.cpp index 99e58321cd..425e15b81f 100644 --- a/lib/Format/UnwrappedLineParser.cpp +++ b/lib/Format/UnwrappedLineParser.cpp @@ -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. diff --git a/unittests/Format/FormatTest.cpp b/unittests/Format/FormatTest.cpp index a2a37cf1a7..c385e353d6 100644 --- a/unittests/Format/FormatTest.cpp +++ b/unittests/Format/FormatTest.cpp @@ -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; -- 2.40.0