diff options
Diffstat (limited to 'clang')
| -rw-r--r-- | clang/include/clang/AST/DeclBase.h | 4 | ||||
| -rw-r--r-- | clang/include/clang/AST/DeclNodes.def | 3 | ||||
| -rw-r--r-- | clang/include/clang/AST/DeclObjC.h | 23 | 
3 files changed, 14 insertions, 16 deletions
diff --git a/clang/include/clang/AST/DeclBase.h b/clang/include/clang/AST/DeclBase.h index 019a0fe965b..2d056c479b6 100644 --- a/clang/include/clang/AST/DeclBase.h +++ b/clang/include/clang/AST/DeclBase.h @@ -37,6 +37,7 @@ class ObjCCategoryDecl;  class ObjCProtocolDecl;  class ObjCImplementationDecl;  class ObjCCategoryImplDecl; +class ObjCImplDecl;  class LinkageSpecDecl;  class BlockDecl;  class DeclarationName; @@ -393,8 +394,7 @@ public:  ///   TagDecl  ///   ObjCMethodDecl  ///   ObjCContainerDecl -///   ObjCCategoryImplDecl -///   ObjCImplementationDecl +///   ObjCImpl  ///   LinkageSpecDecl  ///   BlockDecl  /// diff --git a/clang/include/clang/AST/DeclNodes.def b/clang/include/clang/AST/DeclNodes.def index 1e4440357b6..fd89d8845da 100644 --- a/clang/include/clang/AST/DeclNodes.def +++ b/clang/include/clang/AST/DeclNodes.def @@ -132,8 +132,7 @@ DECL_CONTEXT(TranslationUnit)  DECL_CONTEXT(Namespace)  DECL_CONTEXT(LinkageSpec)  DECL_CONTEXT(ObjCMethod) -DECL_CONTEXT(ObjCCategoryImpl) -DECL_CONTEXT(ObjCImplementation) +DECL_CONTEXT_BASE(ObjCImpl)  DECL_CONTEXT_BASE(Tag)  DECL_CONTEXT_BASE(Function)  DECL_CONTEXT_BASE(ObjCContainer) diff --git a/clang/include/clang/AST/DeclObjC.h b/clang/include/clang/AST/DeclObjC.h index 2fcdaa3e295..c6b7910c7d7 100644 --- a/clang/include/clang/AST/DeclObjC.h +++ b/clang/include/clang/AST/DeclObjC.h @@ -883,6 +883,17 @@ public:    SourceLocation getLocStart() const { return getLocation(); }    SourceLocation getLocEnd() const { return EndLoc; }    void setLocEnd(SourceLocation LE) { EndLoc = LE; }; + +  static bool classof(const Decl *D) { +    return D->getKind() >= ObjCImplFirst && D->getKind() <= ObjCImplLast; +  } +  static bool classof(const ObjCImplDecl *D) { return true; } +  static DeclContext *castToDeclContext(const ObjCImplDecl *D) { +    return static_cast<DeclContext *>(const_cast<ObjCImplDecl*>(D)); +  } +  static ObjCImplDecl *castFromDeclContext(const DeclContext *DC) { +    return static_cast<ObjCImplDecl *>(const_cast<DeclContext*>(DC)); +  }  };  /// ObjCCategoryImplDecl - An object of this class encapsulates a category  @@ -931,12 +942,6 @@ public:    static bool classof(const Decl *D) { return D->getKind() == ObjCCategoryImpl;}    static bool classof(const ObjCCategoryImplDecl *D) { return true; } -  static DeclContext *castToDeclContext(const ObjCCategoryImplDecl *D) { -    return static_cast<DeclContext *>(const_cast<ObjCCategoryImplDecl*>(D)); -  } -  static ObjCCategoryImplDecl *castFromDeclContext(const DeclContext *DC) { -    return static_cast<ObjCCategoryImplDecl *>(const_cast<DeclContext*>(DC)); -  }  };  /// ObjCImplementationDecl - Represents a class definition - this is where @@ -1010,12 +1015,6 @@ public:      return D->getKind() == ObjCImplementation;    }    static bool classof(const ObjCImplementationDecl *D) { return true; } -  static DeclContext *castToDeclContext(const ObjCImplementationDecl *D) { -    return static_cast<DeclContext *>(const_cast<ObjCImplementationDecl*>(D)); -  } -  static ObjCImplementationDecl *castFromDeclContext(const DeclContext *DC) { -    return static_cast<ObjCImplementationDecl *>(const_cast<DeclContext*>(DC)); -  }  };  /// ObjCCompatibleAliasDecl - Represents alias of a class. This alias is   | 

