]> granicus.if.org Git - clang/commitdiff
- Add/tweak some comments.
authorSteve Naroff <snaroff@apple.com>
Thu, 29 Oct 2009 21:11:04 +0000 (21:11 +0000)
committerSteve Naroff <snaroff@apple.com>
Thu, 29 Oct 2009 21:11:04 +0000 (21:11 +0000)
- change ObjCCategoryImplDecl::getCategoryClass() to getCategoryDecl().

No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85528 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/AST/DeclObjC.h
lib/AST/DeclObjC.cpp
tools/CIndex/CIndex.cpp

index 729a2f138303eec1c1164488fae38f543dd88813..abe4de463e61252e2270da3aea306be4b363f034 100644 (file)
@@ -862,7 +862,7 @@ public:
 };
 
 class ObjCImplDecl : public ObjCContainerDecl {
-  /// Class interface for this category implementation
+  /// Class interface for this class/category implementation
   ObjCInterfaceDecl *ClassInterface;
 
 protected:
@@ -935,14 +935,20 @@ public:
                                       SourceLocation L, IdentifierInfo *Id,
                                       ObjCInterfaceDecl *classInterface);
 
-  /// getIdentifier - Get the identifier that names the class
+  /// getIdentifier - Get the identifier that names the category
   /// interface associated with this implementation.
+  /// FIXME: This is a bad API, we are overriding the NamedDecl::getIdentifier()
+  /// to mean something different. For example:
+  /// ((NamedDecl *)SomeCategoryImplDecl)->getIdentifier() 
+  /// returns the class interface name, whereas 
+  /// ((ObjCCategoryImplDecl *)SomeCategoryImplDecl)->getIdentifier() 
+  /// returns the category name.
   IdentifierInfo *getIdentifier() const {
     return Id;
   }
   void setIdentifier(IdentifierInfo *II) { Id = II; }
 
-  ObjCCategoryDecl *getCategoryClass() const;
+  ObjCCategoryDecl *getCategoryDecl() const;
 
   /// getName - Get the name of identifier for the class interface associated
   /// with this implementation as a StringRef.
index 7f38ac1d9ad0a6bbfd712d203c2ef25004a1bcfe..49a566878ff0c8765947004d78391fd012c12ba8 100644 (file)
@@ -288,7 +288,7 @@ ObjCMethodDecl *ObjCMethodDecl::getNextRedeclaration() {
 
   } else if (ObjCCategoryImplDecl *CImplD =
                dyn_cast<ObjCCategoryImplDecl>(CtxD)) {
-    if (ObjCCategoryDecl *CatD = CImplD->getCategoryClass())
+    if (ObjCCategoryDecl *CatD = CImplD->getCategoryDecl())
       Redecl = CatD->getMethod(getSelector(), isInstanceMethod());
   }
 
@@ -306,7 +306,7 @@ ObjCMethodDecl *ObjCMethodDecl::getCanonicalDecl() {
 
   } else if (ObjCCategoryImplDecl *CImplD =
                dyn_cast<ObjCCategoryImplDecl>(CtxD)) {
-    if (ObjCCategoryDecl *CatD = CImplD->getCategoryClass())
+    if (ObjCCategoryDecl *CatD = CImplD->getCategoryDecl())
       if (ObjCMethodDecl *MD = CatD->getMethod(getSelector(),
                                                isInstanceMethod()))
         return MD;
@@ -635,7 +635,7 @@ ObjCCategoryImplDecl::Create(ASTContext &C, DeclContext *DC,
   return new (C) ObjCCategoryImplDecl(DC, L, Id, ClassInterface);
 }
 
-ObjCCategoryDecl *ObjCCategoryImplDecl::getCategoryClass() const {
+ObjCCategoryDecl *ObjCCategoryImplDecl::getCategoryDecl() const {
   return getClassInterface()->FindCategoryDeclaration(getIdentifier());
 }
 
index d21c6fcc70a48cfcf21db84a47bdba627b6c813d..4798e28328223e5c0853e5de5092a1e0d2b63737 100644 (file)
@@ -551,7 +551,10 @@ const char *clang_getDeclSpelling(CXDecl AnonDecl)
     return OMD->getSelector().getAsString().c_str();
   }
   if (ObjCCategoryImplDecl *CIMP = dyn_cast<ObjCCategoryImplDecl>(ND))
-    return CIMP->getCategoryClass()->getName().data();
+    // No, this isn't the same as the code below. getIdentifier() is non-virtual
+    // and returns different names. NamedDecl returns the class name and
+    // ObjCCategoryImplDecl returns the category name.
+    return CIMP->getIdentifier()->getNameStart();
     
   if (ND->getIdentifier())
     return ND->getIdentifier()->getNameStart();