forked from OSchip/llvm-project
Fixes a couple of bugs with the Allman brace breaking.
In particular, left braces after an enum declaration now occur on their own line. Further, when short ifs/whiles are allowed these no longer cause the left brace to be on the same line as the if/while when a brace is included. Patch by Thomas Gibson-Robinson. llvm-svn: 187901
This commit is contained in:
parent
89c862f298
commit
a027f306a6
|
@ -1710,6 +1710,9 @@ private:
|
|||
unsigned Limit) {
|
||||
if (Limit == 0)
|
||||
return;
|
||||
if (Style.BreakBeforeBraces == FormatStyle::BS_Allman &&
|
||||
(I + 1)->First->is(tok::l_brace))
|
||||
return;
|
||||
if ((I + 1)->InPPDirective != I->InPPDirective ||
|
||||
((I + 1)->InPPDirective && (I + 1)->First->HasUnescapedNewline))
|
||||
return;
|
||||
|
|
|
@ -930,6 +930,8 @@ void UnwrappedLineParser::parseEnum() {
|
|||
nextToken();
|
||||
}
|
||||
if (FormatTok->Tok.is(tok::l_brace)) {
|
||||
if (Style.BreakBeforeBraces == FormatStyle::BS_Allman)
|
||||
addUnwrappedLine();
|
||||
nextToken();
|
||||
addUnwrappedLine();
|
||||
++Line->Level;
|
||||
|
|
|
@ -5530,6 +5530,37 @@ TEST_F(FormatTest, AllmanBraceBreaking) {
|
|||
" }\n"
|
||||
"}\n",
|
||||
BreakBeforeBrace);
|
||||
|
||||
verifyFormat("enum X\n"
|
||||
"{\n"
|
||||
" Y = 0,\n"
|
||||
"}\n",
|
||||
BreakBeforeBrace);
|
||||
|
||||
FormatStyle BreakBeforeBraceShortIfs = BreakBeforeBrace;
|
||||
BreakBeforeBraceShortIfs.AllowShortIfStatementsOnASingleLine = true;
|
||||
BreakBeforeBraceShortIfs.AllowShortLoopsOnASingleLine = true;
|
||||
verifyFormat("void f(bool b)\n"
|
||||
"{\n"
|
||||
" if (b)\n"
|
||||
" {\n"
|
||||
" return;\n"
|
||||
" }\n"
|
||||
"}\n",
|
||||
BreakBeforeBraceShortIfs);
|
||||
verifyFormat("void f(bool b)\n"
|
||||
"{\n"
|
||||
" if (b) return;\n"
|
||||
"}\n",
|
||||
BreakBeforeBraceShortIfs);
|
||||
verifyFormat("void f(bool b)\n"
|
||||
"{\n"
|
||||
" while (b)\n"
|
||||
" {\n"
|
||||
" return;\n"
|
||||
" }\n"
|
||||
"}\n",
|
||||
BreakBeforeBraceShortIfs);
|
||||
}
|
||||
|
||||
TEST_F(FormatTest, UnderstandsPragmas) {
|
||||
|
|
Loading…
Reference in New Issue