[clang-format] Fix ObjC method indent after f7f9f94b
Commit
https://github.com/llvm/llvm-project/commit/f7f9f94b2e2b4c714bac9036f6b73a3df42daaff
changed the indent of ObjC method arguments from +4 to +2, if the method
occurs after a block statement. I believe this was unintentional and there
was insufficient ObjC test coverage to catch this.
Example: `clang-format -style=google test.mm`
before:
```
void aaaaaaaaaaaaaaaaaaaaa(int c) {
if (c) {
f();
}
[dddddddddddddddddddddddddddddddddddddddddddddddddddddddd
eeeeeeeeeeeeeeeeeeeeeeeeeeeee:^(fffffffffffffff gggggggg) {
f(SSSSS, c);
}];
}
```
after:
```
void aaaaaaaaaaaaaaaaaaaaa(int c) {
if (c) {
f();
}
[dddddddddddddddddddddddddddddddddddddddddddddddddddddddd
eeeeeeeeeeeeeeeeeeeeeeeeeeeee:^(fffffffffffffff gggggggg) {
f(SSSSS, c);
}];
}
```
Differential Revision: https://reviews.llvm.org/D99063
GitOrigin-RevId: d9abcdd9f471ab0d986197e94498a5cf90aa12ef
diff --git a/lib/Format/UnwrappedLineParser.cpp b/lib/Format/UnwrappedLineParser.cpp
index 1404d4a..e424fcb 100644
--- a/lib/Format/UnwrappedLineParser.cpp
+++ b/lib/Format/UnwrappedLineParser.cpp
@@ -649,7 +649,6 @@
nextToken();
Line->Level = InitialLevel;
- FormatTok->setBlockKind(BK_Block);
if (PPStartHash == PPEndHash) {
Line->MatchingOpeningBlockLineIndex = OpeningLineIndex;
diff --git a/unittests/Format/FormatTestObjC.cpp b/unittests/Format/FormatTestObjC.cpp
index c33f93b..aa27f6e 100644
--- a/unittests/Format/FormatTestObjC.cpp
+++ b/unittests/Format/FormatTestObjC.cpp
@@ -977,6 +977,19 @@
" performSelectorOnMainThread:@selector(loadAccessories)\n"
" withObject:nil\n"
" waitUntilDone:false];");
+
+ // The appropriate indentation is used after a block statement.
+ Style.ContinuationIndentWidth = 4;
+ verifyFormat(
+ "void aaaaaaaaaaaaaaaaaaaaa(int c) {\n"
+ " if (c) {\n"
+ " f();\n"
+ " }\n"
+ " [dddddddddddddddddddddddddddddddddddddddddddddddddddddddd\n"
+ " eeeeeeeeeeeeeeeeeeeeeeeeeeeee:^(fffffffffffffff gggggggg) {\n"
+ " f(SSSSS, c);\n"
+ " }];\n"
+ "}");
}
TEST_F(FormatTestObjC, ObjCAt) {