clang-format: Fix corner case in AllowShortBlocksOnASingleLine.

Before:
  template <int> struct A4 { A4() { }
  };

After:
  template <int i> struct A4 {
    A4() {}
  };

This fixes llvm.org/PR19813 (at least the part that isn't working as
intended).

llvm-svn: 209438
This commit is contained in:
Daniel Jasper 2014-05-22 13:25:26 +00:00
parent 15ff71deea
commit bd630737bd
2 changed files with 6 additions and 2 deletions

View File

@ -690,8 +690,7 @@ private:
if (I[1]->Last->Type == TT_LineComment)
return 0;
do {
if (Tok->is(tok::l_brace) && Tok->BlockKind != BK_BracedInit &&
!Style.AllowShortBlocksOnASingleLine)
if (Tok->is(tok::l_brace) && Tok->BlockKind != BK_BracedInit)
return 0;
Tok = Tok->Next;
} while (Tok);

View File

@ -378,6 +378,11 @@ TEST_F(FormatTest, FormatShortBracedStatements) {
"}",
AllowSimpleBracedStatements);
verifyFormat("template <int> struct A2 {\n"
" struct B {};\n"
"};",
AllowSimpleBracedStatements);
AllowSimpleBracedStatements.AllowShortIfStatementsOnASingleLine = false;
verifyFormat("if (true) {\n"
" f();\n"