]> granicus.if.org Git - clang/commitdiff
Make TemplateDecl and ObjCContainerDecl abstract
authorDouglas Gregor <dgregor@apple.com>
Thu, 22 Apr 2010 23:35:25 +0000 (23:35 +0000)
committerDouglas Gregor <dgregor@apple.com>
Thu, 22 Apr 2010 23:35:25 +0000 (23:35 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102145 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/AST/DeclNodes.def
lib/AST/Decl.cpp
lib/AST/DeclBase.cpp
tools/CIndex/CIndex.cpp

index 082299c41f503908b8d44b04bf9d42d029e3ab04..5b03ff8d91193cf5936aada292a8a3c98d8b0d3c 100644 (file)
@@ -105,14 +105,14 @@ ABSTRACT_DECL(Named,  Decl)
         DECL(ImplicitParam, VarDecl)
         DECL(ParmVar, VarDecl)
         DECL(NonTypeTemplateParm, VarDecl)
-  DECL(Template, NamedDecl)
+  ABSTRACT_DECL(Template, NamedDecl)
     DECL(FunctionTemplate, TemplateDecl)
     DECL(ClassTemplate, TemplateDecl)
     DECL(TemplateTemplateParm, TemplateDecl)
   DECL(Using, NamedDecl)
   DECL(UsingShadow, NamedDecl)
   DECL(ObjCMethod, NamedDecl)
-  DECL(ObjCContainer, NamedDecl)
+  ABSTRACT_DECL(ObjCContainer, NamedDecl)
     DECL(ObjCCategory, ObjCContainerDecl)
     DECL(ObjCProtocol, ObjCContainerDecl)
     DECL(ObjCInterface, ObjCContainerDecl)
@@ -143,7 +143,7 @@ LAST_DECL_CONTEXT(Block)
 
 // Declaration ranges
 DECL_RANGE(Named, Namespace, ObjCCompatibleAlias)
-DECL_RANGE(ObjCContainer, ObjCContainer, ObjCImplementation)
+DECL_RANGE(ObjCContainer, ObjCCategory, ObjCImplementation)
 DECL_RANGE(Field, Field, ObjCAtDefsField)
 DECL_RANGE(Type, Typedef, TemplateTypeParm)
 DECL_RANGE(Tag, Enum, ClassTemplatePartialSpecialization)
@@ -151,7 +151,7 @@ DECL_RANGE(Record, Record, ClassTemplatePartialSpecialization)
 DECL_RANGE(Value, EnumConstant, NonTypeTemplateParm)
 DECL_RANGE(Declarator, Function, NonTypeTemplateParm)
 DECL_RANGE(Function, Function, CXXConversion)
-DECL_RANGE(Template, Template, TemplateTemplateParm)
+DECL_RANGE(Template, FunctionTemplate, TemplateTemplateParm)
 DECL_RANGE(ObjCImpl, ObjCCategoryImpl, ObjCImplementation)
 LAST_DECL_RANGE(Var, Var, NonTypeTemplateParm)
 
index b11f61757dbd4beca5b93525bb7f79000fe6bf1e..1d94c20ef80c933174cc6703a726ecfff1fd0599 100644 (file)
@@ -297,7 +297,6 @@ Linkage NamedDecl::getLinkage() const {
     case Decl::ObjCCategoryImpl:
     case Decl::ObjCClass:
     case Decl::ObjCCompatibleAlias:
-    case Decl::ObjCContainer:
     case Decl::ObjCForwardProtocol:
     case Decl::ObjCImplementation:
     case Decl::ObjCInterface:
index b1585a3078f6881f30c6c01d8c1577bfd608e3aa..61d22b9d7075ae8cf6c02204905d798985aaa3e7 100644 (file)
@@ -238,7 +238,6 @@ unsigned Decl::getIdentifierNamespaceForKind(Kind DeclKind) {
     case ParmVar:
     case NonTypeTemplateParm:
     case ObjCMethod:
-    case ObjCContainer:
     case ObjCInterface:
     case ObjCProperty:
     case ObjCCompatibleAlias:
@@ -269,7 +268,6 @@ unsigned Decl::getIdentifierNamespaceForKind(Kind DeclKind) {
       return IDNS_Tag;
 
     case Namespace:
-    case Template:
     case FunctionTemplate:
     case ClassTemplate:
     case TemplateTemplateParm:
index 5e7114d9efa345829c3608822257f107e80399dd..9cdb9659fe95ff468a0a23d736db0173de1b0963 100644 (file)
@@ -1921,8 +1921,6 @@ CXCursor clang_getCursorDefinition(CXCursor C) {
   // Declaration kinds that don't make any sense here, but are
   // nonetheless harmless.
   case Decl::TranslationUnit:
-  case Decl::Template:
-  case Decl::ObjCContainer:
     break;
 
   // Declaration kinds for which the definition is not resolvable.
@@ -2486,7 +2484,6 @@ static CXLanguageKind getDeclLanguage(const Decl *D) {
     case Decl::ObjCCategoryImpl:
     case Decl::ObjCClass:
     case Decl::ObjCCompatibleAlias:
-    case Decl::ObjCContainer:
     case Decl::ObjCForwardProtocol:
     case Decl::ObjCImplementation:
     case Decl::ObjCInterface:
@@ -2512,7 +2509,6 @@ static CXLanguageKind getDeclLanguage(const Decl *D) {
     case Decl::NamespaceAlias:
     case Decl::NonTypeTemplateParm:
     case Decl::StaticAssert:
-    case Decl::Template:
     case Decl::TemplateTemplateParm:
     case Decl::TemplateTypeParm:
     case Decl::UnresolvedUsingTypename: