diff options
author | Alexander Kornienko <alexfh@google.com> | 2013-01-16 11:43:46 +0000 |
---|---|---|
committer | Alexander Kornienko <alexfh@google.com> | 2013-01-16 11:43:46 +0000 |
commit | d881875b6c78386c4f0da911c1110f9ed1235c6a (patch) | |
tree | 9693a6db6acdb1436a2c0c3134b3f4d99e21b6de | |
parent | a40548c36d91189506cb61fc66ab915fb91906e3 (diff) |
Clang Format: Handle missing semicolon
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172606 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Format/UnwrappedLineParser.cpp | 7 | ||||
-rw-r--r-- | unittests/Format/FormatTest.cpp | 20 |
2 files changed, 24 insertions, 3 deletions
diff --git a/lib/Format/UnwrappedLineParser.cpp b/lib/Format/UnwrappedLineParser.cpp index 9a29ff011a..d6c66dc9ac 100644 --- a/lib/Format/UnwrappedLineParser.cpp +++ b/lib/Format/UnwrappedLineParser.cpp @@ -306,8 +306,8 @@ void UnwrappedLineParser::parseStructuralElement() { case tok::kw_enum: parseEnum(); return; - case tok::kw_struct: // fallthrough - case tok::kw_union: // fallthrough + case tok::kw_struct: + case tok::kw_union: case tok::kw_class: parseRecord(); // A record declaration or definition is always the start of a structural @@ -317,6 +317,9 @@ void UnwrappedLineParser::parseStructuralElement() { nextToken(); addUnwrappedLine(); return; + case tok::r_brace: + addUnwrappedLine(); + return; case tok::l_paren: parseParens(); break; diff --git a/unittests/Format/FormatTest.cpp b/unittests/Format/FormatTest.cpp index ca022a4bbe..4d860c1f65 100644 --- a/unittests/Format/FormatTest.cpp +++ b/unittests/Format/FormatTest.cpp @@ -1213,7 +1213,25 @@ TEST_F(FormatTest, HandlesIncludeDirectives) { //===----------------------------------------------------------------------===// TEST_F(FormatTest, IncorrectCodeTrailingStuff) { - verifyFormat("void f() { return } 42"); + verifyFormat("void f() { return }\n42"); + verifyFormat("void f() {\n" + " if (0)\n" + " return\n" + "}\n" + "42"); +} + +TEST_F(FormatTest, IncorrectCodeMissingSemicolon) { + EXPECT_EQ("void f() { return }", format("void f ( ) { return }")); + EXPECT_EQ("void f() {\n" + " if (a)\n" + " return\n" + "}", format("void f ( ) { if ( a ) return }")); + EXPECT_EQ("namespace N { void f() }", format("namespace N { void f() }")); + EXPECT_EQ("namespace N {\n" + "void f() {}\n" + "void g()\n" + "}", format("namespace N { void f( ) { } void g( ) }")); } TEST_F(FormatTest, IndentationWithinColumnLimitNotPossible) { |