forked from OSchip/llvm-project
[clang-format] Wrapped block after case label should not be merged into one line
PR38854 Differential Revision: http://reviews.llvm.org/D51719 llvm-svn: 342116
This commit is contained in:
parent
2fb44808b1
commit
58c3dee3b3
|
@ -323,6 +323,10 @@ private:
|
|||
kwId == clang::tok::objc_synchronized)
|
||||
return 0;
|
||||
}
|
||||
// Don't merge block with left brace wrapped after case labels
|
||||
if (TheLine->First->is(tok::l_brace) && I != AnnotatedLines.begin() &&
|
||||
I[-1]->First->isOneOf(tok::kw_case, tok::kw_default))
|
||||
return 0;
|
||||
// Try to merge a block with left brace wrapped that wasn't yet covered
|
||||
if (TheLine->Last->is(tok::l_brace)) {
|
||||
return !Style.BraceWrapping.AfterFunction ||
|
||||
|
|
|
@ -1064,6 +1064,32 @@ TEST_F(FormatTest, FormatsSwitchStatement) {
|
|||
" return;\n"
|
||||
"}",
|
||||
getLLVMStyleWithColumns(34));
|
||||
|
||||
FormatStyle Style = getLLVMStyle();
|
||||
Style.IndentCaseLabels = true;
|
||||
Style.AllowShortBlocksOnASingleLine = false;
|
||||
Style.BreakBeforeBraces = FormatStyle::BS_Custom;
|
||||
Style.BraceWrapping.AfterControlStatement = true;
|
||||
EXPECT_EQ("switch (n)\n"
|
||||
"{\n"
|
||||
" case 0:\n"
|
||||
" {\n"
|
||||
" return false;\n"
|
||||
" }\n"
|
||||
" default:\n"
|
||||
" {\n"
|
||||
" return true;\n"
|
||||
" }\n"
|
||||
"}",
|
||||
format("switch (n) {\n"
|
||||
" case 0: {\n"
|
||||
" return false;\n"
|
||||
" }\n"
|
||||
" default: {\n"
|
||||
" return true;\n"
|
||||
" }\n"
|
||||
"}",
|
||||
Style));
|
||||
}
|
||||
|
||||
TEST_F(FormatTest, CaseRanges) {
|
||||
|
|
Loading…
Reference in New Issue