================
@@ -3632,6 +3632,36 @@ static unsigned maxNestingDepth(const AnnotatedLine 
&Line) {
   return Result;
 }
 
+// Returns the token after the first qualifier of the name, or nullptr if there
+// is no qualifier.
+static FormatToken *skipNameQualifier(const FormatToken *Tok) {
+  // Qualified names must start with an identifier.
+  if (!Tok->is(tok::identifier))
+    return nullptr;
+
+  Tok = Tok->getNextNonComment();
+  if (Tok == nullptr)
+    return nullptr;
+
+  // Consider:       A::B::B()
+  //            Tok --^
+  if (Tok->is(tok::coloncolon))
+    return Tok->getNextNonComment();
+
+  // Consider:       A<float>::B<int>::B()
+  //            Tok --^
+  if (Tok->is(TT_TemplateOpener)) {
+    if (!Tok->MatchingParen)
+      return nullptr;
+
+    Tok = Tok->MatchingParen;
+    if (Tok->startsSequence(TT_TemplateCloser, tok::coloncolon))
+      return Tok->getNextNonComment()->getNextNonComment();
+  }
+
+  return nullptr;
----------------
owenca wrote:

```suggestion
  if (Tok->is(TT_TemplateOpener)) {
    Tok = Tok->MatchingParen;
    if (!Tok)
      return nullptr;

    Tok = Tok->getNextNonComment();
    if (!Tok)
      return nullptr;
  }

  return Tok->is(tok::coloncolon) ? Tok->getNextNonComment() : nullptr;
```

https://github.com/llvm/llvm-project/pull/143194
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to