From 5de369056dee2c4de81625cb05a5c212a0bdc053 Mon Sep 17 00:00:00 2001 From: David Blaikie Date: Sun, 14 Nov 2021 11:15:05 -0800 Subject: [PATCH] Follow-up to D77598: Simplify API by passing template parameters only when used/to imply "TemplOverloaded/overloadable" These arguments were redundant, and other parts of D77598 did rely on the presence/absence of template parameters to imply whether types should be included for the argument (like clang::printTemplateArgumentList) so do that here too. --- clang/lib/AST/DeclPrinter.cpp | 28 +++++++++------------------- 1 file changed, 9 insertions(+), 19 deletions(-) diff --git a/clang/lib/AST/DeclPrinter.cpp b/clang/lib/AST/DeclPrinter.cpp index 38f2d10cdc903..884b8e7309056 100644 --- a/clang/lib/AST/DeclPrinter.cpp +++ b/clang/lib/AST/DeclPrinter.cpp @@ -112,11 +112,9 @@ namespace { void printTemplateParameters(const TemplateParameterList *Params, bool OmitTemplateKW = false); void printTemplateArguments(llvm::ArrayRef Args, - const TemplateParameterList *Params, - bool TemplOverloaded); + const TemplateParameterList *Params); void printTemplateArguments(llvm::ArrayRef Args, - const TemplateParameterList *Params, - bool TemplOverloaded); + const TemplateParameterList *Params); void prettyPrintAttributes(Decl *D); void prettyPrintPragmas(Decl *D); void printDeclType(QualType T, StringRef DeclName, bool Pack = false); @@ -652,16 +650,11 @@ void DeclPrinter::VisitFunctionDecl(FunctionDecl *D) { llvm::raw_string_ostream POut(Proto); DeclPrinter TArgPrinter(POut, SubPolicy, Context, Indentation); const auto *TArgAsWritten = D->getTemplateSpecializationArgsAsWritten(); - const TemplateParameterList *TPL = D->getTemplateSpecializationInfo() - ->getTemplate() - ->getTemplateParameters(); if (TArgAsWritten && !Policy.PrintCanonicalTypes) - TArgPrinter.printTemplateArguments(TArgAsWritten->arguments(), TPL, - /*TemplOverloaded*/ true); + TArgPrinter.printTemplateArguments(TArgAsWritten->arguments(), nullptr); else if (const TemplateArgumentList *TArgs = D->getTemplateSpecializationArgs()) - TArgPrinter.printTemplateArguments(TArgs->asArray(), TPL, - /*TemplOverloaded*/ true); + TArgPrinter.printTemplateArguments(TArgs->asArray(), nullptr); } QualType Ty = D->getType(); @@ -1002,8 +995,7 @@ void DeclPrinter::VisitCXXRecordDecl(CXXRecordDecl *D) { dyn_cast(TSI->getType())) Args = TST->template_arguments(); printTemplateArguments( - Args, S->getSpecializedTemplate()->getTemplateParameters(), - /*TemplOverloaded*/ false); + Args, S->getSpecializedTemplate()->getTemplateParameters()); } } @@ -1096,13 +1088,12 @@ void DeclPrinter::printTemplateParameters(const TemplateParameterList *Params, } void DeclPrinter::printTemplateArguments(ArrayRef Args, - const TemplateParameterList *Params, - bool TemplOverloaded) { + const TemplateParameterList *Params) { Out << "<"; for (size_t I = 0, E = Args.size(); I < E; ++I) { if (I) Out << ", "; - if (TemplOverloaded || !Params) + if (!Params) Args[I].print(Policy, Out, /*IncludeType*/ true); else Args[I].print(Policy, Out, @@ -1113,13 +1104,12 @@ void DeclPrinter::printTemplateArguments(ArrayRef Args, } void DeclPrinter::printTemplateArguments(ArrayRef Args, - const TemplateParameterList *Params, - bool TemplOverloaded) { + const TemplateParameterList *Params) { Out << "<"; for (size_t I = 0, E = Args.size(); I < E; ++I) { if (I) Out << ", "; - if (TemplOverloaded) + if (!Params) Args[I].getArgument().print(Policy, Out, /*IncludeType*/ true); else Args[I].getArgument().print(