diff options
author | John McCall <rjmccall@apple.com> | 2009-11-24 18:42:40 +0000 |
---|---|---|
committer | John McCall <rjmccall@apple.com> | 2009-11-24 18:42:40 +0000 |
commit | 80ad16f4b2b350ddbaae21a52975e63df5aafc2c (patch) | |
tree | 49177df9077f00353c77ec5b845b556d8e28f502 /lib/AST/ASTContext.cpp | |
parent | 048f52aa9c9c78538fa369af2fc4b7031a55fa77 (diff) |
Helper function for turning a TemplateName into a DeclarationName.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89782 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/AST/ASTContext.cpp')
-rw-r--r-- | lib/AST/ASTContext.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/lib/AST/ASTContext.cpp b/lib/AST/ASTContext.cpp index dd9fce90e0..639e8f8b9e 100644 --- a/lib/AST/ASTContext.cpp +++ b/lib/AST/ASTContext.cpp @@ -2342,6 +2342,22 @@ CanQualType ASTContext::getCanonicalType(QualType T) { VAT->getBracketsRange())); } +DeclarationName ASTContext::getNameForTemplate(TemplateName Name) { + if (TemplateDecl *TD = Name.getAsTemplateDecl()) + return TD->getDeclName(); + + if (DependentTemplateName *DTN = Name.getAsDependentTemplateName()) { + if (DTN->isIdentifier()) { + return DeclarationNames.getIdentifier(DTN->getIdentifier()); + } else { + return DeclarationNames.getCXXOperatorName(DTN->getOperator()); + } + } + + assert(Name.getAsOverloadedFunctionDecl()); + return Name.getAsOverloadedFunctionDecl()->getDeclName(); +} + TemplateName ASTContext::getCanonicalTemplateName(TemplateName Name) { // If this template name refers to a template, the canonical // template name merely stores the template itself. |