diff options
Diffstat (limited to 'clang/include/clang/AST/DeclTemplate.h')
-rw-r--r-- | clang/include/clang/AST/DeclTemplate.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/clang/include/clang/AST/DeclTemplate.h b/clang/include/clang/AST/DeclTemplate.h index dc50a190de4..761d3cedc79 100644 --- a/clang/include/clang/AST/DeclTemplate.h +++ b/clang/include/clang/AST/DeclTemplate.h @@ -2946,6 +2946,16 @@ inline NamedDecl *getAsNamedDecl(TemplateParameter P) { return P.get<TemplateTemplateParmDecl*>(); } +inline TemplateDecl *getAsTypeTemplateDecl(Decl *D) { + auto *TD = dyn_cast<TemplateDecl>(D); + return TD && (isa<ClassTemplateDecl>(TD) || + isa<ClassTemplatePartialSpecializationDecl>(TD) || + isa<TypeAliasTemplateDecl>(TD) || + isa<TemplateTemplateParmDecl>(TD)) + ? TD + : nullptr; +} + } /* end of namespace clang */ #endif |