]> granicus.if.org Git - clang/commitdiff
add a bunch of castToDeclContext/castFromDeclContext methods.
authorZhongxing Xu <xuzhongxing@gmail.com>
Sat, 10 Jan 2009 14:38:38 +0000 (14:38 +0000)
committerZhongxing Xu <xuzhongxing@gmail.com>
Sat, 10 Jan 2009 14:38:38 +0000 (14:38 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62027 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/AST/DeclCXX.h

index 567751d7107731fbd16e85fa191f782b987e9808..5dbcce1432f3ef740e013d6c0f755f07dfbd5de1 100644 (file)
@@ -489,6 +489,12 @@ public:
     return D->getKind() >= CXXMethod && D->getKind() <= CXXConversion;
   }
   static bool classof(const CXXMethodDecl *D) { return true; }
+  static DeclContext *castToDeclContext(const CXXMethodDecl *D) {
+    return static_cast<DeclContext *>(const_cast<CXXMethodDecl*>(D));
+  }
+  static CXXMethodDecl *castFromDeclContext(const DeclContext *DC) {
+    return static_cast<CXXMethodDecl *>(const_cast<DeclContext*>(DC));
+  }
 
 protected:
   /// EmitImpl - Serialize this CXXMethodDecl.  Called by Decl::Emit.
@@ -697,7 +703,12 @@ public:
     return D->getKind() == CXXConstructor;
   }
   static bool classof(const CXXConstructorDecl *D) { return true; }
-
+  static DeclContext *castToDeclContext(const CXXConstructorDecl *D) {
+    return static_cast<DeclContext *>(const_cast<CXXConstructorDecl*>(D));
+  }
+  static CXXConstructorDecl *castFromDeclContext(const DeclContext *DC) {
+    return static_cast<CXXConstructorDecl *>(const_cast<DeclContext*>(DC));
+  }
   /// EmitImpl - Serialize this CXXConstructorDecl.  Called by Decl::Emit.
   // FIXME: Implement this.
   //virtual void EmitImpl(llvm::Serializer& S) const;
@@ -763,7 +774,12 @@ public:
     return D->getKind() == CXXDestructor;
   }
   static bool classof(const CXXDestructorDecl *D) { return true; }
-
+  static DeclContext *castToDeclContext(const CXXDestructorDecl *D) {
+    return static_cast<DeclContext *>(const_cast<CXXDestructorDecl*>(D));
+  }
+  static CXXDestructorDecl *castFromDeclContext(const DeclContext *DC) {
+    return static_cast<CXXDestructorDecl *>(const_cast<DeclContext*>(DC));
+  }
   /// EmitImpl - Serialize this CXXDestructorDecl.  Called by Decl::Emit.
   // FIXME: Implement this.
   //virtual void EmitImpl(llvm::Serializer& S) const;
@@ -817,7 +833,12 @@ public:
     return D->getKind() == CXXConversion;
   }
   static bool classof(const CXXConversionDecl *D) { return true; }
-
+  static DeclContext *castToDeclContext(const CXXConversionDecl *D) {
+    return static_cast<DeclContext *>(const_cast<CXXConversionDecl*>(D));
+  }
+  static CXXConversionDecl *castFromDeclContext(const DeclContext *DC) {
+    return static_cast<CXXConversionDecl *>(const_cast<DeclContext*>(DC));
+  }
   /// EmitImpl - Serialize this CXXConversionDecl.  Called by Decl::Emit.
   // FIXME: Implement this.
   //virtual void EmitImpl(llvm::Serializer& S) const;