Formatter: Format ObjC static and instance methods consistently, add a test for that.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172254 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Format/Format.cpp b/lib/Format/Format.cpp
index cee587b..77fba1f 100644
--- a/lib/Format/Format.cpp
+++ b/lib/Format/Format.cpp
@@ -1342,8 +1342,9 @@
Last->Tok.isNot(tok::kw_do) && Last->Tok.isNot(tok::r_brace) &&
Last->Tok.isNot(tok::kw_else) && Last->Tok.isNot(tok::kw_try) &&
Last->Tok.isNot(tok::kw_catch) && Last->Tok.isNot(tok::kw_for) &&
- // This gets rid of all ObjC @ keywords and - based definitions.
- Last->Tok.isNot(tok::at) && Last->Tok.isNot(tok::minus);
+ // This gets rid of all ObjC @ keywords and methods.
+ Last->Tok.isNot(tok::at) && Last->Tok.isNot(tok::minus) &&
+ Last->Tok.isNot(tok::plus);
while (!Last->Children.empty())
Last = &Last->Children.back();
if (!Last->Tok.is(tok::l_brace))
diff --git a/unittests/Format/FormatTest.cpp b/unittests/Format/FormatTest.cpp
index a0cfeee..2c1c9ee 100644
--- a/unittests/Format/FormatTest.cpp
+++ b/unittests/Format/FormatTest.cpp
@@ -1388,6 +1388,9 @@
"- (int)answerWith:(int)i {\n"
" return i;\n"
"}\n"
+ "+ (int)answerWith:(int)i {\n"
+ " return i;\n"
+ "}\n"
"@end");
verifyFormat("@implementation Foo\n"
@@ -1397,6 +1400,7 @@
verifyFormat("@implementation Foo : Bar\n"
"+ (id)init {}\n"
+ "- (void)foo {}\n"
"@end");
verifyFormat("@implementation Foo {\n"