IdentifierInfo **ProtoRefNames, unsigned NumProtoRefs) {
ObjcCategoryDecl *CDecl;
ObjcInterfaceDecl* IDecl = getObjCInterfaceDecl(S, ClassName, ClassLoc);
- CDecl = new ObjcCategoryDecl(AtInterfaceLoc, NumProtoRefs, ClassName);
+ CDecl = new ObjcCategoryDecl(AtInterfaceLoc, NumProtoRefs);
CDecl->setClassInterface(IDecl);
/// Check that class of this category is already completely declared.
/// Lisp and Smalltalk. More traditional class-based languages (C++, Java)
/// don't support this level of dynamism, which is both powerful and dangerous.
///
-class ObjcCategoryDecl : public ScopedDecl { // FIXME: don't subclass from ScopedDecl!
+class ObjcCategoryDecl : public Decl {
/// Interface belonging to this category
ObjcInterfaceDecl *ClassInterface;
ObjcCategoryDecl *NextClassCategory;
public:
- ObjcCategoryDecl(SourceLocation L, unsigned numRefProtocol,
- IdentifierInfo *Id)
- : ScopedDecl(ObjcCategory, L, Id, 0),
+ ObjcCategoryDecl(SourceLocation L, unsigned numRefProtocol)
+ : Decl(ObjcCategory),
ClassInterface(0), ObjcCatName(0),
CatReferencedProtocols(0), NumCatReferencedProtocols(-1),
CatInsMethods(0), NumCatInsMethods(-1),
DISPATCH_CASE(ObjcInterface,ObjcInterfaceDecl)
DISPATCH_CASE(ObjcClass,ObjcClassDecl)
DISPATCH_CASE(ObjcProtocol,ObjcProtocolDecl)
- DISPATCH_CASE(ObjcCategory,ObjcCategoryDecl)
default:
assert(false && "Subtype of ScopedDecl not handled.");
}