Add missing castToDeclContext/castFromDeclContext hooks.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61939 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/clang/AST/DeclObjC.h b/include/clang/AST/DeclObjC.h
index 8c5ed18..409bf14 100644
--- a/include/clang/AST/DeclObjC.h
+++ b/include/clang/AST/DeclObjC.h
@@ -758,6 +758,12 @@
static bool classof(const Decl *D) { return D->getKind() == ObjCProtocol; }
static bool classof(const ObjCProtocolDecl *D) { return true; }
+ static DeclContext *castToDeclContext(const ObjCProtocolDecl *D) {
+ return static_cast<DeclContext *>(const_cast<ObjCProtocolDecl*>(D));
+ }
+ static ObjCProtocolDecl *castFromDeclContext(const DeclContext *DC) {
+ return static_cast<ObjCProtocolDecl *>(const_cast<DeclContext*>(DC));
+ }
};
/// ObjCClassDecl - Specifies a list of forward class declarations. For example:
@@ -947,6 +953,12 @@
static bool classof(const Decl *D) { return D->getKind() == ObjCCategory; }
static bool classof(const ObjCCategoryDecl *D) { return true; }
+ static DeclContext *castToDeclContext(const ObjCCategoryDecl *D) {
+ return static_cast<DeclContext *>(const_cast<ObjCCategoryDecl*>(D));
+ }
+ static ObjCCategoryDecl *castFromDeclContext(const DeclContext *DC) {
+ return static_cast<ObjCCategoryDecl *>(const_cast<DeclContext*>(DC));
+ }
};
/// ObjCCategoryImplDecl - An object of this class encapsulates a category
@@ -1041,6 +1053,12 @@
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
@@ -1163,6 +1181,12 @@
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