@@ -534,11 +534,11 @@ void UnwrappedLineParser::calculateBraceTypes(bool ExpectClassBody) {
534
534
case tok::r_brace:
535
535
if (LBraceStack.empty ())
536
536
break ;
537
- if (LBraceStack.back ().Tok ->is (BK_Unknown)) {
537
+ if (auto *LBrace = LBraceStack.back ().Tok ; LBrace ->is (BK_Unknown)) {
538
538
bool ProbablyBracedList = false ;
539
539
if (Style.Language == FormatStyle::LK_Proto) {
540
540
ProbablyBracedList = NextTok->isOneOf (tok::comma, tok::r_square);
541
- } else {
541
+ } else if (LBrace-> isNot (TT_EnumLBrace)) {
542
542
// Using OriginalColumn to distinguish between ObjC methods and
543
543
// binary operators is a bit hacky.
544
544
bool NextIsObjCMethod = NextTok->isOneOf (tok::plus, tok::minus) &&
@@ -552,7 +552,7 @@ void UnwrappedLineParser::calculateBraceTypes(bool ExpectClassBody) {
552
552
553
553
// If we already marked the opening brace as braced list, the closing
554
554
// must also be part of it.
555
- ProbablyBracedList = LBraceStack. back (). Tok ->is (TT_BracedListLBrace);
555
+ ProbablyBracedList = LBrace ->is (TT_BracedListLBrace);
556
556
557
557
ProbablyBracedList = ProbablyBracedList ||
558
558
(Style.isJavaScript () &&
@@ -608,13 +608,9 @@ void UnwrappedLineParser::calculateBraceTypes(bool ExpectClassBody) {
608
608
ProbablyBracedList = true ;
609
609
}
610
610
}
611
- if (ProbablyBracedList) {
612
- Tok->setBlockKind (BK_BracedInit);
613
- LBraceStack.back ().Tok ->setBlockKind (BK_BracedInit);
614
- } else {
615
- Tok->setBlockKind (BK_Block);
616
- LBraceStack.back ().Tok ->setBlockKind (BK_Block);
617
- }
611
+ const auto BlockKind = ProbablyBracedList ? BK_BracedInit : BK_Block;
612
+ Tok->setBlockKind (BlockKind);
613
+ LBrace->setBlockKind (BlockKind);
618
614
}
619
615
LBraceStack.pop_back ();
620
616
break ;
@@ -2418,6 +2414,7 @@ bool UnwrappedLineParser::tryToParseChildBlock() {
2418
2414
}
2419
2415
2420
2416
bool UnwrappedLineParser::parseBracedList (bool IsAngleBracket, bool IsEnum) {
2417
+ assert (!IsAngleBracket || !IsEnum);
2421
2418
bool HasError = false ;
2422
2419
2423
2420
// FIXME: Once we have an expression parser in the UnwrappedLineParser,
@@ -2440,8 +2437,11 @@ bool UnwrappedLineParser::parseBracedList(bool IsAngleBracket, bool IsEnum) {
2440
2437
}
2441
2438
}
2442
2439
if (FormatTok->is (IsAngleBracket ? tok::greater : tok::r_brace)) {
2443
- if (IsEnum && !Style.AllowShortEnumsOnASingleLine )
2444
- addUnwrappedLine ();
2440
+ if (IsEnum) {
2441
+ FormatTok->setBlockKind (BK_Block);
2442
+ if (!Style.AllowShortEnumsOnASingleLine )
2443
+ addUnwrappedLine ();
2444
+ }
2445
2445
nextToken ();
2446
2446
return !HasError;
2447
2447
}
0 commit comments