Clang Format: Handle missing semicolon

llvm-svn: 172606
This commit is contained in:
Alexander Kornienko 2013-01-16 11:43:46 +00:00
parent f7a247654a
commit 1231e066a8
2 changed files with 24 additions and 3 deletions

View File

@ -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;

View File

@ -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) {