mirror of
https://github.com/intel/llvm.git
synced 2026-01-26 21:53:12 +08:00
clang-format: Support @autoreleasepool.
Format @autoreleasepool properly for the Attach brace style by recognizing @autoreleasepool as a block introducer. Patch from Strager Neds! http://reviews.llvm.org/D10372 llvm-svn: 240896
This commit is contained in:
@@ -656,6 +656,16 @@ void UnwrappedLineParser::parseStructuralElement() {
|
||||
nextToken();
|
||||
addUnwrappedLine();
|
||||
return;
|
||||
case tok::objc_autoreleasepool:
|
||||
nextToken();
|
||||
if (FormatTok->Tok.is(tok::l_brace)) {
|
||||
if (Style.BreakBeforeBraces == FormatStyle::BS_Allman ||
|
||||
Style.BreakBeforeBraces == FormatStyle::BS_GNU)
|
||||
addUnwrappedLine();
|
||||
parseBlock(/*MustBeDeclaration=*/false);
|
||||
}
|
||||
addUnwrappedLine();
|
||||
return;
|
||||
case tok::objc_try:
|
||||
// This branch isn't strictly necessary (the kw_try case below would
|
||||
// do this too after the tok::at is parsed above). But be explicit.
|
||||
|
||||
@@ -2391,6 +2391,27 @@ TEST_F(FormatTest, FormatObjCTryCatch) {
|
||||
"});\n");
|
||||
}
|
||||
|
||||
TEST_F(FormatTest, FormatObjCAutoreleasepool) {
|
||||
FormatStyle Style = getLLVMStyle();
|
||||
verifyFormat("@autoreleasepool {\n"
|
||||
" f();\n"
|
||||
"}\n"
|
||||
"@autoreleasepool {\n"
|
||||
" f();\n"
|
||||
"}\n",
|
||||
Style);
|
||||
Style.BreakBeforeBraces = FormatStyle::BS_Allman;
|
||||
verifyFormat("@autoreleasepool\n"
|
||||
"{\n"
|
||||
" f();\n"
|
||||
"}\n"
|
||||
"@autoreleasepool\n"
|
||||
"{\n"
|
||||
" f();\n"
|
||||
"}\n",
|
||||
Style);
|
||||
}
|
||||
|
||||
TEST_F(FormatTest, StaticInitializers) {
|
||||
verifyFormat("static SomeClass SC = {1, 'a'};");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user