forked from OSchip/llvm-project
Teach -ast-print how to print template template parameters.
llvm-svn: 129565
This commit is contained in:
parent
3462376c65
commit
030f499d2f
|
@ -60,7 +60,7 @@ namespace {
|
||||||
void VisitNamespaceAliasDecl(NamespaceAliasDecl *D);
|
void VisitNamespaceAliasDecl(NamespaceAliasDecl *D);
|
||||||
void VisitCXXRecordDecl(CXXRecordDecl *D);
|
void VisitCXXRecordDecl(CXXRecordDecl *D);
|
||||||
void VisitLinkageSpecDecl(LinkageSpecDecl *D);
|
void VisitLinkageSpecDecl(LinkageSpecDecl *D);
|
||||||
void VisitTemplateDecl(TemplateDecl *D);
|
void VisitTemplateDecl(const TemplateDecl *D);
|
||||||
void VisitObjCMethodDecl(ObjCMethodDecl *D);
|
void VisitObjCMethodDecl(ObjCMethodDecl *D);
|
||||||
void VisitObjCClassDecl(ObjCClassDecl *D);
|
void VisitObjCClassDecl(ObjCClassDecl *D);
|
||||||
void VisitObjCImplementationDecl(ObjCImplementationDecl *D);
|
void VisitObjCImplementationDecl(ObjCImplementationDecl *D);
|
||||||
|
@ -674,7 +674,7 @@ void DeclPrinter::VisitLinkageSpecDecl(LinkageSpecDecl *D) {
|
||||||
Visit(*D->decls_begin());
|
Visit(*D->decls_begin());
|
||||||
}
|
}
|
||||||
|
|
||||||
void DeclPrinter::VisitTemplateDecl(TemplateDecl *D) {
|
void DeclPrinter::VisitTemplateDecl(const TemplateDecl *D) {
|
||||||
Out << "template <";
|
Out << "template <";
|
||||||
|
|
||||||
TemplateParameterList *Params = D->getTemplateParameters();
|
TemplateParameterList *Params = D->getTemplateParameters();
|
||||||
|
@ -720,12 +720,17 @@ void DeclPrinter::VisitTemplateDecl(TemplateDecl *D) {
|
||||||
NTTP->getDefaultArgument()->printPretty(Out, Context, 0, Policy,
|
NTTP->getDefaultArgument()->printPretty(Out, Context, 0, Policy,
|
||||||
Indentation);
|
Indentation);
|
||||||
}
|
}
|
||||||
|
} else if (const TemplateTemplateParmDecl *TTPD =
|
||||||
|
dyn_cast<TemplateTemplateParmDecl>(Param)) {
|
||||||
|
VisitTemplateDecl(TTPD);
|
||||||
|
// FIXME: print the default argument, if present.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Out << "> ";
|
Out << "> ";
|
||||||
|
|
||||||
if (TemplateTemplateParmDecl *TTP = dyn_cast<TemplateTemplateParmDecl>(D)) {
|
if (const TemplateTemplateParmDecl *TTP =
|
||||||
|
dyn_cast<TemplateTemplateParmDecl>(D)) {
|
||||||
Out << "class ";
|
Out << "class ";
|
||||||
if (TTP->isParameterPack())
|
if (TTP->isParameterPack())
|
||||||
Out << "...";
|
Out << "...";
|
||||||
|
|
Loading…
Reference in New Issue