forked from OSchip/llvm-project
clang-format: Improve braced init list detection:
Before: std::this_thread::sleep_for(std::chrono::nanoseconds{ std::chrono::seconds { 1 } } / 5); After: std::this_thread::sleep_for( std::chrono::nanoseconds{ std::chrono::seconds{ 1 } } / 5); This fixes llvm.org/PR16554. llvm-svn: 189451
This commit is contained in:
parent
d215b8bde2
commit
65b79829c3
|
@ -284,8 +284,12 @@ void UnwrappedLineParser::calculateBraceTypes() {
|
|||
// Thus, if the parent is a braced init list, we consider all
|
||||
// brace blocks inside it braced init list. That works good enough
|
||||
// for now, but we will need to fix it to correctly handle lambdas.
|
||||
//
|
||||
// We exclude + and - as they can be ObjC visibility modifiers.
|
||||
if (NextTok->isOneOf(tok::comma, tok::semi, tok::r_paren,
|
||||
tok::l_brace, tok::colon)) {
|
||||
tok::l_brace, tok::colon) ||
|
||||
(NextTok->isBinaryOperator() &&
|
||||
!NextTok->isOneOf(tok::plus, tok::minus))) {
|
||||
Tok->BlockKind = BK_BracedInit;
|
||||
LBraceStack.back()->BlockKind = BK_BracedInit;
|
||||
} else {
|
||||
|
|
|
@ -4159,6 +4159,9 @@ TEST_F(FormatTest, LayoutCxx11ConstructorBraceInitializers) {
|
|||
" // comment 2\n"
|
||||
" param3, param4\n"
|
||||
" });");
|
||||
verifyFormat(
|
||||
"std::this_thread::sleep_for(\n"
|
||||
" std::chrono::nanoseconds{ std::chrono::seconds{ 1 } } / 5);");
|
||||
|
||||
FormatStyle NoSpaces = getLLVMStyle();
|
||||
NoSpaces.Cpp11BracedListStyle = true;
|
||||
|
|
Loading…
Reference in New Issue