diff options
-rw-r--r-- | tools/libclang/IndexDecl.cpp | 4 | ||||
-rw-r--r-- | tools/libclang/IndexingContext.cpp | 3 |
2 files changed, 5 insertions, 2 deletions
diff --git a/tools/libclang/IndexDecl.cpp b/tools/libclang/IndexDecl.cpp index 67f6703e75..b2a45306dc 100644 --- a/tools/libclang/IndexDecl.cpp +++ b/tools/libclang/IndexDecl.cpp @@ -108,6 +108,10 @@ public: } bool VisitObjCImplementationDecl(ObjCImplementationDecl *D) { + const ObjCInterfaceDecl *Class = D->getClassInterface(); + if (Class->isImplicitInterfaceDecl()) + IndexCtx.handleObjCInterface(Class); + IndexCtx.handleObjCImplementation(D); IndexCtx.indexTUDeclsInObjCContainer(); diff --git a/tools/libclang/IndexingContext.cpp b/tools/libclang/IndexingContext.cpp index 3ab29e2e5b..a6e968b8fe 100644 --- a/tools/libclang/IndexingContext.cpp +++ b/tools/libclang/IndexingContext.cpp @@ -206,9 +206,8 @@ void IndexingContext::handleObjCInterface(const ObjCInterfaceDecl *D) { void IndexingContext::handleObjCImplementation( const ObjCImplementationDecl *D) { - const ObjCInterfaceDecl *Class = D->getClassInterface(); ObjCContainerDeclInfo ContDInfo(/*isForwardRef=*/false, - /*isRedeclaration=*/!Class->isImplicitInterfaceDecl(), + /*isRedeclaration=*/true, /*isImplementation=*/true); handleObjCContainer(D, D->getLocation(), getCursor(D), ContDInfo); } |