================ @@ -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