[AST] QualifiedTemplateName::getTemplateDecl cleanup.
authorHaojian Wu <hokein.wu@gmail.com>
Thu, 21 Apr 2022 18:19:32 +0000 (20:19 +0200)
committerHaojian Wu <hokein.wu@gmail.com>
Fri, 22 Apr 2022 12:28:48 +0000 (14:28 +0200)
This is a followup cleanup of 1234b1c6d8113d50beef5801be607ad1d502b2f7

Differential Revision: https://reviews.llvm.org/D124238

clang/include/clang/AST/TemplateName.h
clang/lib/AST/ItaniumMangle.cpp
clang/lib/AST/TemplateName.cpp
clang/lib/Sema/TreeTransform.h
clang/tools/libclang/CIndex.cpp

index b6f4332830c8ff28b18c240c1434308b5f6219fe..ca85adac648b591aa91c7fb120dc300cd9073c68 100644 (file)
@@ -439,13 +439,6 @@ public:
   /// Return the underlying template name.
   TemplateName getUnderlyingTemplate() const { return UnderlyingTemplate; }
 
-  /// The template declaration to which this qualified name
-  /// refers.
-  /// FIXME: remove this and use getUnderlyingTemplate() instead.
-  TemplateDecl *getTemplateDecl() const {
-    return UnderlyingTemplate.getAsTemplateDecl();
-  }
-
   void Profile(llvm::FoldingSetNodeID &ID) {
     Profile(ID, getQualifier(), hasTemplateKeyword(), UnderlyingTemplate);
   }
index adab764487c7b88cd02649e667a3b841a82ff409..75f072168858b4a776047bbd9bb283078469681e 100644 (file)
@@ -2204,9 +2204,6 @@ void CXXNameMangler::mangleType(TemplateName TN) {
 
   switch (TN.getKind()) {
   case TemplateName::QualifiedTemplate:
-    TD = TN.getAsQualifiedTemplateName()->getTemplateDecl();
-    goto HaveDecl;
-
   case TemplateName::UsingTemplate:
   case TemplateName::Template:
     TD = TN.getAsTemplateDecl();
index 8e32c9c6a6ad780fed8b006f1aa930411d996a90..f0f64cd5a5168f296e6e42042f1bb7ae70259c65 100644 (file)
@@ -115,7 +115,7 @@ TemplateDecl *TemplateName::getAsTemplateDecl() const {
   }
 
   if (QualifiedTemplateName *QTN = getAsQualifiedTemplateName())
-    return QTN->getTemplateDecl();
+    return QTN->getUnderlyingTemplate().getAsTemplateDecl();
 
   if (SubstTemplateTemplateParmStorage *sub = getAsSubstTemplateTemplateParm())
     return sub->getReplacement().getAsTemplateDecl();
@@ -273,14 +273,15 @@ void TemplateName::print(raw_ostream &OS, const PrintingPolicy &Policy,
     if (Qual == Qualified::Fully &&
         getDependence() !=
             TemplateNameDependenceScope::DependentInstantiation) {
-      QTN->getTemplateDecl()->printQualifiedName(OS, Policy);
+      QTN->getUnderlyingTemplate().getAsTemplateDecl()->printQualifiedName(
+          OS, Policy);
       return;
     }
     if (Qual == Qualified::AsWritten)
       QTN->getQualifier()->print(OS, Policy);
     if (QTN->hasTemplateKeyword())
       OS << "template ";
-    OS << *QTN->getTemplateDecl();
+    OS << *QTN->getUnderlyingTemplate().getAsTemplateDecl();
   } else if (DependentTemplateName *DTN = getAsDependentTemplateName()) {
     if (Qual == Qualified::AsWritten && DTN->getQualifier())
       DTN->getQualifier()->print(OS, Policy);
index 282163cf4c923f39512665b96dc51031df2a903c..aef757efc9e71feba18b4166e10e9157c3322ba9 100644 (file)
@@ -4280,7 +4280,7 @@ TreeTransform<Derived>::TransformTemplateName(CXXScopeSpec &SS,
                                               NamedDecl *FirstQualifierInScope,
                                               bool AllowInjectedClassName) {
   if (QualifiedTemplateName *QTN = Name.getAsQualifiedTemplateName()) {
-    TemplateDecl *Template = QTN->getTemplateDecl();
+    TemplateDecl *Template = QTN->getUnderlyingTemplate().getAsTemplateDecl();
     assert(Template && "qualified template name must refer to a template");
 
     TemplateDecl *TransTemplate
index fc6177036b08a4c0832ad08e9dc0e470289bee4a..6df673fec4ada9b033549922eaa16e53194ec95f 100644 (file)
@@ -1443,6 +1443,7 @@ bool CursorVisitor::VisitTemplateName(TemplateName Name, SourceLocation Loc) {
   switch (Name.getKind()) {
   case TemplateName::Template:
   case TemplateName::UsingTemplate:
+  case TemplateName::QualifiedTemplate: // FIXME: Visit nested-name-specifier.
     return Visit(MakeCursorTemplateRef(Name.getAsTemplateDecl(), Loc, TU));
 
   case TemplateName::OverloadedTemplate:
@@ -1460,11 +1461,6 @@ bool CursorVisitor::VisitTemplateName(TemplateName Name, SourceLocation Loc) {
     // FIXME: Visit nested-name-specifier.
     return false;
 
-  case TemplateName::QualifiedTemplate:
-    // FIXME: Visit nested-name-specifier.
-    return Visit(MakeCursorTemplateRef(
-        Name.getAsQualifiedTemplateName()->getTemplateDecl(), Loc, TU));
-
   case TemplateName::SubstTemplateTemplateParm:
     return Visit(MakeCursorTemplateRef(
         Name.getAsSubstTemplateTemplateParm()->getParameter(), Loc, TU));