aboutsummaryrefslogtreecommitdiff
path: root/unittests/Format/FormatTest.cpp
diff options
context:
space:
mode:
authorManuel Klimek <klimek@google.com>2013-01-07 18:10:23 +0000
committerManuel Klimek <klimek@google.com>2013-01-07 18:10:23 +0000
commitde7685487c5d628dd9fe64c4f861cd1888f50fc7 (patch)
tree53a21aaf4c9eebde9af749c584608db3410c69d3 /unittests/Format/FormatTest.cpp
parentc3cd2b0d538e4db78f1bcbedd0085e2005ce5c51 (diff)
Fix parsing of variable declarations directly after a class / struct.
Previous indent: class A { } a; void f() { }; With this patch: class A { } a; void f() { } ; The patch introduces a production for classes and structs, and parses the rest of the line to the semicolon after the class scope. This allowed us to remove a long-standing wart in the parser that would just much the semicolon after any block. Due to this suboptimal formating some tests were broken. Some unrelated formatting tests broke; those hit a bug in the ast printing, and need to be fixed separately. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171761 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'unittests/Format/FormatTest.cpp')
-rw-r--r--unittests/Format/FormatTest.cpp21
1 files changed, 14 insertions, 7 deletions
diff --git a/unittests/Format/FormatTest.cpp b/unittests/Format/FormatTest.cpp
index d4490dddfc..2ba4765cc7 100644
--- a/unittests/Format/FormatTest.cpp
+++ b/unittests/Format/FormatTest.cpp
@@ -332,6 +332,13 @@ TEST_F(FormatTest, FormatsDerivedClass) {
"};");
}
+TEST_F(FormatTest, FormatsVariableDeclarationsAfterStructOrClass) {
+ verifyFormat("class A {\n"
+ "} a, b;");
+ verifyFormat("struct A {\n"
+ "} a, b;");
+}
+
TEST_F(FormatTest, FormatsEnum) {
verifyFormat("enum {\n"
" Zero,\n"
@@ -624,7 +631,7 @@ TEST_F(FormatTest, BreaksAsHighAsPossible) {
TEST_F(FormatTest, BreaksDesireably) {
verifyFormat("if (aaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaa) ||\n"
" aaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaa) ||\n"
- " aaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaa)) {\n};");
+ " aaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaa)) {\n}");
verifyFormat(
"aaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,\n"
@@ -974,14 +981,14 @@ TEST_F(FormatTest, IncorrectAccessSpecifier) {
"int qwerty;");
verifyFormat("public\n"
"B {\n"
- "};");
+ "}");
verifyFormat("public\n"
"{\n"
- "};");
+ "}");
verifyFormat("public\n"
"B {\n"
" int x;\n"
- "};");
+ "}");
}
TEST_F(FormatTest, IncorrectCodeUnbalancedBraces) {
@@ -990,16 +997,16 @@ TEST_F(FormatTest, IncorrectCodeUnbalancedBraces) {
TEST_F(FormatTest, IncorrectCodeDoNoWhile) {
verifyFormat("do {\n"
- "};");
+ "}");
verifyFormat("do {\n"
- "};\n"
+ "}\n"
"f();");
verifyFormat("do {\n"
"}\n"
"wheeee(fun);");
verifyFormat("do {\n"
" f();\n"
- "};");
+ "}");
}
TEST_F(FormatTest, DoesNotTouchUnwrappedLinesWithErrors) {