This patch introduces the ObjcCategoryImplDecl class and does the checking related to
unimplemented methods in category implementation.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@42531 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/Sema/Sema.h b/Sema/Sema.h
index 488d105..74f79d4 100644
--- a/Sema/Sema.h
+++ b/Sema/Sema.h
@@ -49,6 +49,8 @@
class ObjcInterfaceDecl;
class ObjcProtocolDecl;
class ObjcImplementationDecl;
+ class ObjcCategoryImplDecl;
+ class ObjcCategoryDecl;
/// Sema - This implements semantic analysis and AST building for C.
class Sema : public Action {
@@ -219,6 +221,11 @@
void ImplMethodsVsClassMethods(ObjcImplementationDecl* IMPDecl,
ObjcInterfaceDecl* IDecl);
+ /// ImplCategoryMethodsVsIntfMethods - Checks that methods declared in the
+ /// category interface is implemented in the category @implementation.
+ void ImplCategoryMethodsVsIntfMethods(ObjcCategoryImplDecl *CatImplDecl,
+ ObjcCategoryDecl *CatClassDecl);
+
//===--------------------------------------------------------------------===//
// Statement Parsing Callbacks: SemaStmt.cpp.
public:
@@ -395,6 +402,13 @@
IdentifierInfo *SuperClassname,
SourceLocation SuperClassLoc);
+ virtual DeclTy *ObjcStartCategoryImplementation(Scope* S,
+ SourceLocation AtCatImplLoc,
+ IdentifierInfo *ClassName,
+ SourceLocation ClassLoc,
+ IdentifierInfo *CatName,
+ SourceLocation CatLoc);
+
virtual DeclTy *ObjcClassDeclaration(Scope *S, SourceLocation AtClassLoc,
IdentifierInfo **IdentList,
unsigned NumElts);