IdentifierInfo *CatName, SourceLocation CatLoc) {
ObjcInterfaceDecl *IDecl = getObjCInterfaceDecl(ClassName);
ObjcCategoryImplDecl *CDecl = new ObjcCategoryImplDecl(AtCatImplLoc,
- ClassName, IDecl,
- CatName);
+ CatName, IDecl);
/// Check that class of this category is already completely declared.
if (!IDecl || IDecl->isForwardDecl())
Diag(ClassLoc, diag::err_undef_interface, ClassName->getName());
if (IDecl) {
for (ObjcCategoryDecl *Categories = IDecl->getListCategories();
Categories; Categories = Categories->getNextClassCategory()) {
- if (Categories->getIdentifier() == CatImplClass->getObjcCatName()) {
+ if (Categories->getIdentifier() == CatImplClass->getIdentifier()) {
ImplCategoryMethodsVsIntfMethods(CatImplClass, Categories);
break;
}
/// ObjcCategoryImplDecl - An object of this class encapsulates a category
/// @implementation declaration.
-class ObjcCategoryImplDecl : public Decl {
+class ObjcCategoryImplDecl : public NamedDecl {
/// Class interface for this category implementation
ObjcInterfaceDecl *ClassInterface;
- /// Category name
- IdentifierInfo *ObjcCatName;
-
/// category instance methods being implemented
ObjcMethodDecl **InstanceMethods; // Null if category is not implementing any
int NumInstanceMethods; // -1 if category is not implementing any
public:
ObjcCategoryImplDecl(SourceLocation L, IdentifierInfo *Id,
- ObjcInterfaceDecl *classInterface,
- IdentifierInfo *catName)
- : Decl(ObjcCategoryImpl, L),
+ ObjcInterfaceDecl *classInterface)
+ : NamedDecl(ObjcCategoryImpl, L, Id),
ClassInterface(classInterface),
- ObjcCatName(catName),
InstanceMethods(0), NumInstanceMethods(-1),
ClassMethods(0), NumClassMethods(-1) {}
return ClassInterface;
}
- IdentifierInfo *getObjcCatName() const { return ObjcCatName; }
-
ObjcMethodDecl **getInstanceMethods() const { return InstanceMethods; }
int getNumInstanceMethods() const { return NumInstanceMethods; }