Author: Owen Pan Date: 2023-11-10T01:23:05-08:00 New Revision: cc75e520162ef651977d3f6d11b0d0b92dd2be07
URL: https://github.com/llvm/llvm-project/commit/cc75e520162ef651977d3f6d11b0d0b92dd2be07 DIFF: https://github.com/llvm/llvm-project/commit/cc75e520162ef651977d3f6d11b0d0b92dd2be07.diff LOG: [clang-format][NFC] Refactor isPointerOrReference Added: Modified: clang/lib/Format/FormatToken.h clang/lib/Format/QualifierAlignmentFixer.cpp clang/lib/Format/TokenAnnotator.cpp clang/lib/Format/WhitespaceManager.cpp Removed: ################################################################################ diff --git a/clang/lib/Format/FormatToken.h b/clang/lib/Format/FormatToken.h index 87f6a76ec5bfd39..14a3c21ba44eaee 100644 --- a/clang/lib/Format/FormatToken.h +++ b/clang/lib/Format/FormatToken.h @@ -692,6 +692,10 @@ struct FormatToken { TT_LeadingJavaAnnotation); } + bool isPointerOrReference() const { + return isOneOf(tok::star, tok::amp, tok::ampamp); + } + bool isUnaryOperator() const { switch (Tok.getKind()) { case tok::plus: diff --git a/clang/lib/Format/QualifierAlignmentFixer.cpp b/clang/lib/Format/QualifierAlignmentFixer.cpp index 77586532c851ff2..7167e50ec724eab 100644 --- a/clang/lib/Format/QualifierAlignmentFixer.cpp +++ b/clang/lib/Format/QualifierAlignmentFixer.cpp @@ -380,7 +380,7 @@ const FormatToken *LeftRightQualifierAlignmentFixer::analyzeLeft( // For left qualifiers preceeded by nothing, a template declaration, or *,&,&& // we only perform sorting. - if (!TypeToken || TypeToken->isOneOf(tok::star, tok::amp, tok::ampamp) || + if (!TypeToken || TypeToken->isPointerOrReference() || TypeToken->ClosesRequiresClause || TypeToken->ClosesTemplateDeclaration) { // Don't sort past a non-configured qualifier token. diff --git a/clang/lib/Format/TokenAnnotator.cpp b/clang/lib/Format/TokenAnnotator.cpp index 729e7e370bf62ea..d648e441f23fe9e 100644 --- a/clang/lib/Format/TokenAnnotator.cpp +++ b/clang/lib/Format/TokenAnnotator.cpp @@ -405,7 +405,7 @@ class AnnotatingParser { // void (^ObjCBlock)(void); bool MightBeFunctionType = !Contexts[Contexts.size() - 2].IsExpression; bool ProbablyFunctionType = - CurrentToken->isOneOf(tok::star, tok::amp, tok::ampamp, tok::caret); + CurrentToken->isPointerOrReference() || CurrentToken->is(tok::caret); bool HasMultipleLines = false; bool HasMultipleParametersOnALine = false; bool MightBeObjCForRangeLoop = @@ -422,8 +422,7 @@ class AnnotatingParser { FormatToken *PrevPrev = Prev->getPreviousNonComment(); FormatToken *Next = CurrentToken->Next; if (PrevPrev && PrevPrev->is(tok::identifier) && - PrevPrev->isNot(TT_TypeName) && - Prev->isOneOf(tok::star, tok::amp, tok::ampamp) && + PrevPrev->isNot(TT_TypeName) && Prev->isPointerOrReference() && CurrentToken->is(tok::identifier) && Next->isNot(tok::equal)) { Prev->setType(TT_BinaryOperator); LookForDecls = false; @@ -460,10 +459,8 @@ class AnnotatingParser { // auto my_lambda = MACRO((Type *type, int i) { .. body .. }); for (FormatToken *Tok = &OpeningParen; Tok != CurrentToken; Tok = Tok->Next) { - if (Tok->is(TT_BinaryOperator) && - Tok->isOneOf(tok::star, tok::amp, tok::ampamp)) { + if (Tok->is(TT_BinaryOperator) && Tok->isPointerOrReference()) Tok->setType(TT_PointerOrReference); - } } } @@ -1861,8 +1858,8 @@ class AnnotatingParser { if (Previous->opensScope()) break; if (Previous->isOneOf(TT_BinaryOperator, TT_UnaryOperator) && - Previous->isOneOf(tok::star, tok::amp, tok::ampamp) && - Previous->Previous && Previous->Previous->isNot(tok::equal)) { + Previous->isPointerOrReference() && Previous->Previous && + Previous->Previous->isNot(tok::equal)) { Previous->setType(TT_PointerOrReference); } } @@ -2023,7 +2020,7 @@ class AnnotatingParser { } else if (isDeductionGuide(Current)) { // Deduction guides trailing arrow " A(...) -> A<T>;". Current.setType(TT_TrailingReturnArrow); - } else if (Current.isOneOf(tok::star, tok::amp, tok::ampamp)) { + } else if (Current.isPointerOrReference()) { Current.setType(determineStarAmpUsage( Current, Contexts.back().CanBeExpression && Contexts.back().IsExpression, @@ -3281,7 +3278,7 @@ static bool isFunctionDeclarationName(bool IsCpp, const FormatToken &Current, continue; } if ((Next->isSimpleTypeSpecifier() || Next->is(tok::identifier)) && - Next->Next && Next->Next->isOneOf(tok::star, tok::amp, tok::ampamp)) { + Next->Next && Next->Next->isPointerOrReference()) { // For operator void*(), operator char*(), operator Foo*(). Next = Next->Next; continue; @@ -3310,7 +3307,7 @@ static bool isFunctionDeclarationName(bool IsCpp, const FormatToken &Current, assert(Previous->MatchingParen->is(TT_TypeDeclarationParen)); return true; } - if (!Previous->isOneOf(tok::star, tok::amp, tok::ampamp, TT_TemplateCloser)) + if (!Previous->isPointerOrReference() && Previous->isNot(TT_TemplateCloser)) return false; Next = skipOperatorName(Next); } else { @@ -3481,8 +3478,8 @@ void TokenAnnotator::calculateFormattingInformation(AnnotatedLine &Line) const { continue; auto *Next = Tok->Next; const bool NextIsBinaryOperator = - Next && Next->isOneOf(tok::star, tok::amp, tok::ampamp) && - Next->Next && Next->Next->is(tok::identifier); + Next && Next->isPointerOrReference() && Next->Next && + Next->Next->is(tok::identifier); if (!NextIsBinaryOperator) continue; Next->setType(TT_BinaryOperator); @@ -4105,15 +4102,15 @@ bool TokenAnnotator::spaceRequiredBetween(const AnnotatedLine &Line, } // Ensure right pointer alignment with ellipsis e.g. int *...P if (Left.is(tok::ellipsis) && Left.Previous && - Left.Previous->isOneOf(tok::star, tok::amp, tok::ampamp)) { + Left.Previous->isPointerOrReference()) { return Style.PointerAlignment != FormatStyle::PAS_Right; } if (Right.is(tok::star) && Left.is(tok::l_paren)) return false; - if (Left.is(tok::star) && Right.isOneOf(tok::star, tok::amp, tok::ampamp)) + if (Left.is(tok::star) && Right.isPointerOrReference()) return false; - if (Right.isOneOf(tok::star, tok::amp, tok::ampamp)) { + if (Right.isPointerOrReference()) { const FormatToken *Previous = &Left; while (Previous && Previous->isNot(tok::kw_operator)) { if (Previous->is(tok::identifier) || Previous->isSimpleTypeSpecifier()) { @@ -5258,7 +5255,7 @@ bool TokenAnnotator::mustBreakBefore(const AnnotatedLine &Line, } if (Style.BraceWrapping.BeforeLambdaBody && Right.is(TT_LambdaLBrace) && - Left.isOneOf(tok::star, tok::amp, tok::ampamp, TT_TemplateCloser)) { + (Left.isPointerOrReference() || Left.is(TT_TemplateCloser))) { return true; } diff --git a/clang/lib/Format/WhitespaceManager.cpp b/clang/lib/Format/WhitespaceManager.cpp index ff8b1e6e13a3f77..764a068912e780a 100644 --- a/clang/lib/Format/WhitespaceManager.cpp +++ b/clang/lib/Format/WhitespaceManager.cpp @@ -470,8 +470,7 @@ AlignTokenSequence(const FormatStyle &Style, unsigned Start, unsigned End, Previous >= 0 && Changes[Previous].Tok->getType() == TT_PointerOrReference; --Previous) { - assert( - Changes[Previous].Tok->isOneOf(tok::star, tok::amp, tok::ampamp)); + assert(Changes[Previous].Tok->isPointerOrReference()); if (Changes[Previous].Tok->isNot(tok::star)) { if (ReferenceNotRightAligned) continue; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits