[clang] 3f0a530 - [clang-format][NFC] Clean up AnnotatingParser::consumeToken() (#142104)

via cfe-commits cfe-commits at lists.llvm.org
Fri May 30 01:51:26 PDT 2025


Author: Owen Pan
Date: 2025-05-30T01:51:23-07:00
New Revision: 3f0a5305b483560275fa494d2c1b117c6ebe350a

URL: https://github.com/llvm/llvm-project/commit/3f0a5305b483560275fa494d2c1b117c6ebe350a
DIFF: https://github.com/llvm/llvm-project/commit/3f0a5305b483560275fa494d2c1b117c6ebe350a.diff

LOG: [clang-format][NFC] Clean up AnnotatingParser::consumeToken() (#142104)

Added: 
    

Modified: 
    clang/lib/Format/TokenAnnotator.cpp

Removed: 
    


################################################################################
diff  --git a/clang/lib/Format/TokenAnnotator.cpp b/clang/lib/Format/TokenAnnotator.cpp
index 23c26c821bec9..51ececc0c0e81 100644
--- a/clang/lib/Format/TokenAnnotator.cpp
+++ b/clang/lib/Format/TokenAnnotator.cpp
@@ -1306,14 +1306,15 @@ class AnnotatingParser {
     // Multi-line string itself is a single annotated token.
     if (Tok->is(TT_TableGenMultiLineString))
       return true;
+    auto *Prev = Tok->getPreviousNonComment();
     switch (bool IsIf = false; Tok->Tok.getKind()) {
     case tok::plus:
     case tok::minus:
-      if (!Tok->getPreviousNonComment() && Line.MustBeDeclaration)
+      if (!Prev && Line.MustBeDeclaration)
         Tok->setType(TT_ObjCMethodSpecifier);
       break;
     case tok::colon:
-      if (!Tok->Previous)
+      if (!Prev)
         return false;
       // Goto labels and case labels are already identified in
       // UnwrappedLineParser.
@@ -1346,8 +1347,7 @@ class AnnotatingParser {
       } else if (Style.isVerilog() && Tok->isNot(TT_BinaryOperator)) {
         // The distribution weight operators are labeled
         // TT_BinaryOperator by the lexer.
-        if (Keywords.isVerilogEnd(*Tok->Previous) ||
-            Keywords.isVerilogBegin(*Tok->Previous)) {
+        if (Keywords.isVerilogEnd(*Prev) || Keywords.isVerilogBegin(*Prev)) {
           Tok->setType(TT_VerilogBlockLabelColon);
         } else if (Contexts.back().ContextKind == tok::l_square) {
           Tok->setType(TT_BitFieldColon);
@@ -1371,50 +1371,43 @@ class AnnotatingParser {
         Tok->setType(TT_InlineASMColon);
       } else if (Contexts.back().ColonIsDictLiteral || Style.isProto()) {
         Tok->setType(TT_DictLiteral);
-        if (Style.isTextProto()) {
-          if (FormatToken *Previous = Tok->getPreviousNonComment())
-            Previous->setType(TT_SelectorName);
-        }
+        if (Prev && Style.isTextProto())
+          Prev->setType(TT_SelectorName);
       } else if (Contexts.back().ColonIsObjCMethodExpr ||
                  Line.startsWith(TT_ObjCMethodSpecifier)) {
         Tok->setType(TT_ObjCMethodExpr);
-        const FormatToken *BeforePrevious = Tok->Previous->Previous;
+        const auto *PrevPrev = Prev->Previous;
         // Ensure we tag all identifiers in method declarations as
         // TT_SelectorName.
         bool UnknownIdentifierInMethodDeclaration =
             Line.startsWith(TT_ObjCMethodSpecifier) &&
-            Tok->Previous->is(tok::identifier) && Tok->Previous->is(TT_Unknown);
-        if (!BeforePrevious ||
+            Prev->is(tok::identifier) && Prev->is(TT_Unknown);
+        if (!PrevPrev ||
             // FIXME(bug 36976): ObjC return types shouldn't use TT_CastRParen.
-            !(BeforePrevious->is(TT_CastRParen) ||
-              (BeforePrevious->is(TT_ObjCMethodExpr) &&
-               BeforePrevious->is(tok::colon))) ||
-            BeforePrevious->is(tok::r_square) ||
+            !(PrevPrev->is(TT_CastRParen) ||
+              (PrevPrev->is(TT_ObjCMethodExpr) && PrevPrev->is(tok::colon))) ||
+            PrevPrev->is(tok::r_square) ||
             Contexts.back().LongestObjCSelectorName == 0 ||
             UnknownIdentifierInMethodDeclaration) {
-          Tok->Previous->setType(TT_SelectorName);
-          if (!Contexts.back().FirstObjCSelectorName) {
-            Contexts.back().FirstObjCSelectorName = Tok->Previous;
-          } else if (Tok->Previous->ColumnWidth >
-                     Contexts.back().LongestObjCSelectorName) {
-            Contexts.back().LongestObjCSelectorName =
-                Tok->Previous->ColumnWidth;
-          }
-          Tok->Previous->ParameterIndex =
+          Prev->setType(TT_SelectorName);
+          if (!Contexts.back().FirstObjCSelectorName)
+            Contexts.back().FirstObjCSelectorName = Prev;
+          else if (Prev->ColumnWidth > Contexts.back().LongestObjCSelectorName)
+            Contexts.back().LongestObjCSelectorName = Prev->ColumnWidth;
+          Prev->ParameterIndex =
               Contexts.back().FirstObjCSelectorName->ObjCSelectorNameParts;
           ++Contexts.back().FirstObjCSelectorName->ObjCSelectorNameParts;
         }
       } else if (Contexts.back().ColonIsForRangeExpr) {
         Tok->setType(TT_RangeBasedForLoopColon);
-        for (auto *Prev = Tok->Previous;
-             Prev && !Prev->isOneOf(tok::semi, tok::l_paren);
-             Prev = Prev->Previous) {
-          if (Prev->isPointerOrReference())
-            Prev->setFinalizedType(TT_PointerOrReference);
+        for (auto *Token = Prev;
+             Token && !Token->isOneOf(tok::semi, tok::l_paren);
+             Token = Token->Previous) {
+          if (Token->isPointerOrReference())
+            Token->setFinalizedType(TT_PointerOrReference);
         }
       } else if (Contexts.back().ContextType == Context::C11GenericSelection) {
         Tok->setType(TT_GenericSelectionColon);
-        auto *Prev = Tok->getPreviousNonComment();
         assert(Prev);
         if (Prev->isPointerOrReference())
           Prev->setFinalizedType(TT_PointerOrReference);
@@ -1424,7 +1417,6 @@ class AnnotatingParser {
                  !Line.getFirstNonComment()->isOneOf(tok::kw_enum, tok::kw_case,
                                                      tok::kw_default) &&
                  !Line.startsWith(tok::kw_typedef, tok::kw_enum)) {
-        FormatToken *Prev = Tok->getPreviousNonComment();
         if (!Prev)
           break;
         if (Prev->isOneOf(tok::r_paren, tok::kw_noexcept) ||
@@ -1442,7 +1434,7 @@ class AnnotatingParser {
           if (Prev->isAccessSpecifierKeyword())
             Line.Type = LT_AccessModifier;
         }
-      } else if (canBeObjCSelectorComponent(*Tok->Previous) && Tok->Next &&
+      } else if (canBeObjCSelectorComponent(*Prev) && Tok->Next &&
                  (Tok->Next->isOneOf(tok::r_paren, tok::comma) ||
                   (canBeObjCSelectorComponent(*Tok->Next) && Tok->Next->Next &&
                    Tok->Next->Next->is(tok::colon)))) {
@@ -1483,7 +1475,7 @@ class AnnotatingParser {
     case tok::kw_for:
       if (Style.isJavaScript()) {
         // x.for and {for: ...}
-        if ((Tok->Previous && Tok->Previous->is(tok::period)) ||
+        if ((Prev && Prev->is(tok::period)) ||
             (Tok->Next && Tok->Next->is(tok::colon))) {
           break;
         }
@@ -1505,11 +1497,10 @@ 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) &&
-          Tok->Previous->MatchingParen &&
-          Tok->Previous->MatchingParen->is(TT_OverloadedOperatorLParen)) {
-        Tok->Previous->setType(TT_OverloadedOperator);
-        Tok->Previous->MatchingParen->setType(TT_OverloadedOperator);
+      if (Prev && Prev->is(tok::r_paren) && Prev->MatchingParen &&
+          Prev->MatchingParen->is(TT_OverloadedOperatorLParen)) {
+        Prev->setType(TT_OverloadedOperator);
+        Prev->MatchingParen->setType(TT_OverloadedOperator);
         Tok->setType(TT_OverloadedOperatorLParen);
       }
 
@@ -1520,7 +1511,6 @@ class AnnotatingParser {
         // function is only responsible for the definition, not the
         // instantiation.
         auto IsInstancePort = [&]() {
-          const FormatToken *Prev = Tok->getPreviousNonComment();
           const FormatToken *PrevPrev;
           // In the following example all 4 left parentheses will be treated as
           // 'TT_VerilogInstancePortLParen'.
@@ -1566,11 +1556,10 @@ class AnnotatingParser {
           !Contexts.back().IsExpression && !Line.startsWith(TT_ObjCProperty) &&
           !Line.startsWith(tok::l_paren) &&
           !Tok->isOneOf(TT_TypeDeclarationParen, TT_RequiresExpressionLParen)) {
-        if (const auto *Previous = Tok->Previous;
-            !Previous ||
-            (!Previous->isAttribute() &&
-             !Previous->isOneOf(TT_RequiresClause, TT_LeadingJavaAnnotation,
-                                TT_BinaryOperator))) {
+        if (!Prev ||
+            (!Prev->isAttribute() &&
+             !Prev->isOneOf(TT_RequiresClause, TT_LeadingJavaAnnotation,
+                            TT_BinaryOperator))) {
           Line.MightBeFunctionDecl = true;
           Tok->MightBeFunctionDeclParen = true;
         }
@@ -1587,9 +1576,8 @@ class AnnotatingParser {
         if (Tok->is(TT_RequiresExpressionLBrace))
           Line.Type = LT_RequiresExpression;
       } else if (Style.isTextProto()) {
-        FormatToken *Previous = Tok->getPreviousNonComment();
-        if (Previous && Previous->isNot(TT_DictLiteral))
-          Previous->setType(TT_SelectorName);
+        if (Prev && Prev->isNot(TT_DictLiteral))
+          Prev->setType(TT_SelectorName);
       }
       Scopes.push_back(getScopeType(*Tok));
       if (!parseBrace())
@@ -1604,12 +1592,11 @@ class AnnotatingParser {
         //   msg: < item: data >
         // In TT_TextProto, map<key, value> does not occur.
         if (Style.isTextProto() ||
-            (Style.Language == FormatStyle::LK_Proto && Tok->Previous &&
-             Tok->Previous->isOneOf(TT_SelectorName, TT_DictLiteral))) {
+            (Style.Language == FormatStyle::LK_Proto && Prev &&
+             Prev->isOneOf(TT_SelectorName, TT_DictLiteral))) {
           Tok->setType(TT_DictLiteral);
-          FormatToken *Previous = Tok->getPreviousNonComment();
-          if (Previous && Previous->isNot(TT_DictLiteral))
-            Previous->setType(TT_SelectorName);
+          if (Prev && Prev->isNot(TT_DictLiteral))
+            Prev->setType(TT_SelectorName);
         }
         if (Style.isTableGen())
           Tok->setType(TT_TemplateOpener);
@@ -1628,13 +1615,13 @@ class AnnotatingParser {
       if (!Scopes.empty())
         Scopes.pop_back();
       // Lines can start with '}'.
-      if (Tok->Previous)
+      if (Prev)
         return false;
       break;
     case tok::greater:
       if (!Style.isTextProto() && Tok->is(TT_Unknown))
         Tok->setType(TT_BinaryOperator);
-      if (Tok->Previous && Tok->Previous->is(TT_TemplateCloser))
+      if (Prev && Prev->is(TT_TemplateCloser))
         Tok->SpacesRequiredBefore = 1;
       break;
     case tok::kw_operator:
@@ -1789,7 +1776,7 @@ class AnnotatingParser {
           Tok->Next->isNot(tok::l_paren)) {
         Tok->setType(TT_CSharpGenericTypeConstraint);
         parseCSharpGenericTypeConstraint();
-        if (!Tok->getPreviousNonComment())
+        if (!Prev)
           Line.IsContinuation = true;
       }
       if (Style.isTableGen()) {
@@ -1806,10 +1793,8 @@ class AnnotatingParser {
       }
       break;
     case tok::arrow:
-      if (Tok->isNot(TT_LambdaArrow) && Tok->Previous &&
-          Tok->Previous->is(tok::kw_noexcept)) {
+      if (Tok->isNot(TT_LambdaArrow) && Prev && Prev->is(tok::kw_noexcept))
         Tok->setType(TT_TrailingReturnArrow);
-      }
       break;
     case tok::equal:
       // In TableGen, there must be a value after "=";


        


More information about the cfe-commits mailing list