Expand Up
@@ -47,7 +47,7 @@ class AnnotatingParser {
if (NonTemplateLess.count (CurrentToken->Previous ))
return false ;
const FormatToken& Previous = *CurrentToken->Previous ;
const FormatToken & Previous = *CurrentToken->Previous ;
if (Previous.Previous ) {
if (Previous.Previous ->Tok .isLiteral ())
return false ;
Expand Down
Expand Up
@@ -152,11 +152,11 @@ class AnnotatingParser {
// export type X = (...);
Contexts.back ().IsExpression = false ;
} else if (Left->Previous &&
(Left->Previous ->isOneOf (tok::kw_static_assert, tok::kw_decltype,
tok::kw_if, tok::kw_while, tok::l_paren,
tok::comma) ||
Left->Previous ->endsSequence (tok::kw_constexpr, tok::kw_if) ||
Left->Previous ->is (TT_BinaryOperator))) {
(Left->Previous ->isOneOf (tok::kw_static_assert, tok::kw_decltype,
tok::kw_if, tok::kw_while, tok::l_paren,
tok::comma) ||
Left->Previous ->endsSequence (tok::kw_constexpr, tok::kw_if) ||
Left->Previous ->is (TT_BinaryOperator))) {
// static_assert, if and while usually contain expressions.
Contexts.back ().IsExpression = true ;
} else if (Style .Language == FormatStyle::LK_JavaScript && Left->Previous &&
Expand Down
Expand Up
@@ -325,8 +325,7 @@ class AnnotatingParser {
// In C++, this can happen either in array of templates (foo<int>[10])
// or when array is a nested template type (unique_ptr<type1<type2>[]>).
bool CppArrayTemplates =
Style .isCpp () && Parent &&
Parent->is (TT_TemplateCloser) &&
Style .isCpp () && Parent && Parent->is (TT_TemplateCloser) &&
(Contexts.back ().CanBeExpression || Contexts.back ().IsExpression ||
Contexts.back ().InTemplateArgument );
Expand Down
Expand Up
@@ -607,7 +606,8 @@ class AnnotatingParser {
break ;
case tok::kw_if:
case tok::kw_while:
if (Tok->is (tok::kw_if) && CurrentToken && CurrentToken->is (tok::kw_constexpr))
if (Tok->is (tok::kw_if) && CurrentToken &&
CurrentToken->is (tok::kw_constexpr))
next ();
if (CurrentToken && CurrentToken->is (tok::l_paren)) {
next ();
Expand All
@@ -633,8 +633,7 @@ class AnnotatingParser {
// marks the first l_paren as a OverloadedOperatorLParen. Here, we make
// the first two parens OverloadedOperators and the second l_paren an
// OverloadedOperatorLParen.
if (Tok->Previous &&
Tok->Previous ->is (tok::r_paren) &&
if (Tok->Previous && Tok->Previous ->is (tok::r_paren) &&
Tok->Previous ->MatchingParen &&
Tok->Previous ->MatchingParen ->is (TT_OverloadedOperatorLParen)) {
Tok->Previous ->Type = TT_OverloadedOperator;
Expand All
@@ -657,7 +656,7 @@ class AnnotatingParser {
break ;
case tok::l_brace:
if (Style .Language == FormatStyle::LK_TextProto) {
FormatToken *Previous =Tok->getPreviousNonComment ();
FormatToken *Previous = Tok->getPreviousNonComment ();
if (Previous && Previous->Type != TT_DictLiteral)
Previous->Type = TT_SelectorName;
}
Expand Down
Expand Up
@@ -754,8 +753,8 @@ class AnnotatingParser {
void parseIncludeDirective () {
if (CurrentToken && CurrentToken->is (tok::less)) {
next ();
while (CurrentToken) {
next ();
while (CurrentToken) {
// Mark tokens up to the trailing line comments as implicit string
// literals.
if (CurrentToken->isNot (tok::comment) &&
Expand Down
Expand Up
@@ -795,9 +794,9 @@ class AnnotatingParser {
void parseHasInclude () {
if (!CurrentToken || !CurrentToken->is (tok::l_paren))
return ;
next (); // '('
next (); // '('
parseIncludeDirective ();
next (); // ')'
next (); // ')'
}
LineType parsePreprocessorDirective () {
Expand Down
Expand Up
@@ -856,7 +855,7 @@ class AnnotatingParser {
if (Tok->is (tok::l_paren))
parseParens ();
else if (Tok->isOneOf (Keywords.kw___has_include ,
Keywords.kw___has_include_next ))
Keywords.kw___has_include_next ))
parseHasInclude ();
}
return Type;
Expand Down
Expand Up
@@ -947,10 +946,11 @@ class AnnotatingParser {
// FIXME: Closure-library specific stuff should not be hard-coded but be
// configurable.
return Tok.TokenText == " goog" && Tok.Next && Tok.Next ->is (tok::period) &&
Tok.Next ->Next && (Tok.Next ->Next ->TokenText == " module" ||
Tok.Next ->Next ->TokenText == " provide" ||
Tok.Next ->Next ->TokenText == " require" ||
Tok.Next ->Next ->TokenText == " forwardDeclare" ) &&
Tok.Next ->Next &&
(Tok.Next ->Next ->TokenText == " module" ||
Tok.Next ->Next ->TokenText == " provide" ||
Tok.Next ->Next ->TokenText == " require" ||
Tok.Next ->Next ->TokenText == " forwardDeclare" ) &&
Tok.Next ->Next ->Next && Tok.Next ->Next ->Next ->is (tok::l_paren);
}
Expand Down
Expand Up
@@ -1067,8 +1067,7 @@ class AnnotatingParser {
Current.Previous ->is (TT_CtorInitializerColon)) {
Contexts.back ().IsExpression = true ;
Contexts.back ().InCtorInitializer = true ;
} else if (Current.Previous &&
Current.Previous ->is (TT_InheritanceColon)) {
} else if (Current.Previous && Current.Previous ->is (TT_InheritanceColon)) {
Contexts.back ().InInheritanceList = true ;
} else if (Current.isOneOf (tok::r_paren, tok::greater, tok::comma)) {
for (FormatToken *Previous = Current.Previous ;
Expand Down
Expand Up
@@ -1131,10 +1130,10 @@ class AnnotatingParser {
Current.NestingLevel == 0 ) {
Current.Type = TT_TrailingReturnArrow;
} else if (Current.isOneOf (tok::star, tok::amp, tok::ampamp)) {
Current.Type =
determineStarAmpUsage (Current, Contexts.back ().CanBeExpression &&
Contexts.back ().IsExpression ,
Contexts.back ().InTemplateArgument );
Current.Type = determineStarAmpUsage (Current,
Contexts.back ().CanBeExpression &&
Contexts.back ().IsExpression ,
Contexts.back ().InTemplateArgument );
} else if (Current.isOneOf (tok::minus, tok::plus, tok::caret)) {
Current.Type = determinePlusMinusCaretUsage (Current);
if (Current.is (TT_UnaryOperator) && Current.is (tok::caret))
Expand Down
Expand Up
@@ -1742,7 +1741,7 @@ void TokenAnnotator::setCommentLineLevels(
static unsigned maxNestingDepth (const AnnotatedLine &Line) {
unsigned Result = 0 ;
for (const auto * Tok = Line.First ; Tok != nullptr ; Tok = Tok->Next )
for (const auto * Tok = Line.First ; Tok != nullptr ; Tok = Tok->Next )
Result = std::max (Result, Tok->NestingLevel );
return Result;
}
Expand Down
Expand Up
@@ -1784,16 +1783,16 @@ void TokenAnnotator::annotate(AnnotatedLine &Line) {
// function declaration.
static bool isFunctionDeclarationName (const FormatToken &Current,
const AnnotatedLine &Line) {
auto skipOperatorName = [](const FormatToken* Next) -> const FormatToken* {
auto skipOperatorName = [](const FormatToken * Next) -> const FormatToken * {
for (; Next; Next = Next->Next ) {
if (Next->is (TT_OverloadedOperatorLParen))
return Next;
if (Next->is (TT_OverloadedOperator))
continue ;
if (Next->isOneOf (tok::kw_new, tok::kw_delete)) {
// For 'new[]' and 'delete[]'.
if (Next->Next && Next->Next ->is (tok::l_square) &&
Next->Next ->Next && Next-> Next -> Next ->is (tok::r_square))
if (Next->Next && Next->Next ->is (tok::l_square) && Next-> Next -> Next &&
Next->Next ->Next ->is (tok::r_square))
Next = Next->Next ->Next ;
continue ;
}
Expand Down
Expand Up
@@ -2072,7 +2071,8 @@ unsigned TokenAnnotator::splitPenalty(const AnnotatedLine &Line,
if (Left.is (tok::comment))
return 1000 ;
if (Left.isOneOf (TT_RangeBasedForLoopColon, TT_InheritanceColon, TT_CtorInitializerColon))
if (Left.isOneOf (TT_RangeBasedForLoopColon, TT_InheritanceColon,
TT_CtorInitializerColon))
return 2 ;
if (Right.isMemberAccess ()) {
Expand Down
Expand Up
@@ -2130,8 +2130,8 @@ unsigned TokenAnnotator::splitPenalty(const AnnotatedLine &Line,
Style .AlignAfterOpenBracket != FormatStyle::BAS_DontAlign)
return 100 ;
if (Left.is (tok::l_paren) && Left.Previous &&
(Left.Previous ->isOneOf (tok::kw_if, tok::kw_for)
|| Left.Previous ->endsSequence (tok::kw_constexpr, tok::kw_if)))
(Left.Previous ->isOneOf (tok::kw_if, tok::kw_for) ||
Left.Previous ->endsSequence (tok::kw_constexpr, tok::kw_if)))
return 1000 ;
if (Left.is (tok::equal) && InFunctionDecl)
return 110 ;
Expand Down
Expand Up
@@ -2201,8 +2201,8 @@ bool TokenAnnotator::spaceRequiredBetween(const AnnotatedLine &Line,
: Style .SpacesInParentheses ;
if (Right.isOneOf (tok::semi, tok::comma))
return false ;
if (Right.is (tok::less) &&
Line. Type == LT_ObjCDecl && Style .ObjCSpaceBeforeProtocolList )
if (Right.is (tok::less) && Line. Type == LT_ObjCDecl &&
Style .ObjCSpaceBeforeProtocolList )
return true ;
if (Right.is (tok::less) && Left.is (tok::kw_template))
return Style .SpaceAfterTemplateKeyword ;
Expand Down
Expand Up
@@ -2351,8 +2351,8 @@ bool TokenAnnotator::spaceRequiredBefore(const AnnotatedLine &Line,
if (Left.is (TT_JsFatArrow))
return true ;
// for await ( ...
if (Right.is (tok::l_paren) && Left.is (Keywords.kw_await ) &&
Left.Previous && Left. Previous ->is (tok::kw_for))
if (Right.is (tok::l_paren) && Left.is (Keywords.kw_await ) && Left. Previous &&
Left.Previous ->is (tok::kw_for))
return true ;
if (Left.is (Keywords.kw_async ) && Right.is (tok::l_paren) &&
Right.MatchingParen ) {
Expand Down
Expand Up
@@ -2509,7 +2509,8 @@ bool TokenAnnotator::spaceRequiredBefore(const AnnotatedLine &Line,
return (Left.is (TT_TemplateOpener) &&
Style .Standard == FormatStyle::LS_Cpp03) ||
!(Left.isOneOf (tok::l_paren, tok::r_paren, tok::l_square,
tok::kw___super, TT_TemplateCloser, TT_TemplateOpener));
tok::kw___super, TT_TemplateCloser,
TT_TemplateOpener));
if ((Left.is (TT_TemplateOpener)) != (Right.is (TT_TemplateCloser)))
return Style .SpacesInAngles ;
if ((Right.is (TT_BinaryOperator) && !Left.is (tok::l_paren)) ||
Expand Down
Expand Up
@@ -2634,19 +2635,16 @@ bool TokenAnnotator::mustBreakBefore(const AnnotatedLine &Line,
!Style .ConstructorInitializerAllOnOneLineOrOnePerLine )
return true ;
// Break only if we have multiple inheritance.
if (Style .BreakBeforeInheritanceComma &&
Right.is (TT_InheritanceComma))
return true ;
if (Style .BreakBeforeInheritanceComma && Right.is (TT_InheritanceComma))
return true ;
if (Right.is (tok::string_literal) && Right.TokenText .startswith (" R\" " ))
// Raw string literals are special wrt. line breaks. The author has made a
// deliberate choice and might have aligned the contents of the string
// literal accordingly. Thus, we try keep existing line breaks.
return Right.NewlinesBefore > 0 ;
if ((Right.Previous ->is (tok::l_brace) ||
(Right.Previous ->is (tok::less) &&
Right.Previous ->Previous &&
Right.Previous ->Previous ->is (tok::equal))
) &&
(Right.Previous ->is (tok::less) && Right.Previous ->Previous &&
Right.Previous ->Previous ->is (tok::equal))) &&
Right.NestingLevel == 1 && Style .Language == FormatStyle::LK_Proto) {
// Don't put enums or option definitions onto single lines in protocol
// buffers.
Expand All
@@ -2656,7 +2654,8 @@ bool TokenAnnotator::mustBreakBefore(const AnnotatedLine &Line,
return Right.HasUnescapedNewline ;
if (isAllmanBrace (Left) || isAllmanBrace (Right))
return (Line.startsWith (tok::kw_enum) && Style .BraceWrapping .AfterEnum ) ||
(Line.startsWith (tok::kw_typedef, tok::kw_enum) && Style .BraceWrapping .AfterEnum ) ||
(Line.startsWith (tok::kw_typedef, tok::kw_enum) &&
Style .BraceWrapping .AfterEnum ) ||
(Line.startsWith (tok::kw_class) && Style .BraceWrapping .AfterClass ) ||
(Line.startsWith (tok::kw_struct) && Style .BraceWrapping .AfterStruct );
if (Left.is (TT_ObjCBlockLBrace) && !Style .AllowShortBlocksOnASingleLine )
Expand Down
Expand Up
@@ -2750,8 +2749,7 @@ bool TokenAnnotator::canBreakBefore(const AnnotatedLine &Line,
// list.
return Left.BlockKind == BK_BracedInit ||
(Left.is (TT_CtorInitializerColon) &&
Style .BreakConstructorInitializers ==
FormatStyle::BCIS_AfterColon);
Style .BreakConstructorInitializers == FormatStyle::BCIS_AfterColon);
if (Left.is (tok::question) && Right.is (tok::colon))
return false ;
if (Right.is (TT_ConditionalExpr) || Right.is (tok::question))
Expand Down
Expand Up
@@ -2876,10 +2874,9 @@ void TokenAnnotator::printDebugInfo(const AnnotatedLine &Line) {
<< " T=" << getTokenTypeName (Tok->Type )
<< " S=" << Tok->SpacesRequiredBefore
<< " B=" << Tok->BlockParameterCount
<< " BK=" << Tok->BlockKind
<< " P=" << Tok->SplitPenalty << " Name=" << Tok->Tok .getName ()
<< " L=" << Tok->TotalLength << " PPK=" << Tok->PackingKind
<< " FakeLParens=" ;
<< " BK=" << Tok->BlockKind << " P=" << Tok->SplitPenalty
<< " Name=" << Tok->Tok .getName () << " L=" << Tok->TotalLength
<< " PPK=" << Tok->PackingKind << " FakeLParens=" ;
for (unsigned i = 0 , e = Tok->FakeLParens .size (); i != e; ++i)
llvm::errs () << Tok->FakeLParens [i] << " /" ;
llvm::errs () << " FakeRParens=" << Tok->FakeRParens ;
Expand Down