diff options
author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2011-11-14 22:39:19 +0000 |
---|---|---|
committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2011-11-14 22:39:19 +0000 |
commit | c71d55469e7d5f7b376a30620617a175a9442da9 (patch) | |
tree | ae4897541142bdea0dfe0863eff08be6c84c6e35 /tools/c-index-test | |
parent | b3029960632ca8a3248e74770eda64d6c16f7246 (diff) |
[libclang] Slight changes to the indexing API and bigger internal changes for it.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144577 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/c-index-test')
-rw-r--r-- | tools/c-index-test/c-index-test.c | 49 |
1 files changed, 24 insertions, 25 deletions
diff --git a/tools/c-index-test/c-index-test.c b/tools/c-index-test/c-index-test.c index ae970fb952..177ffa5a88 100644 --- a/tools/c-index-test/c-index-test.c +++ b/tools/c-index-test/c-index-test.c @@ -1624,7 +1624,8 @@ static const char *getEntityKindString(CXIdxEntityKind kind) { case CXIdxEntity_ObjCClass: return "objc-class"; case CXIdxEntity_ObjCProtocol: return "objc-protocol"; case CXIdxEntity_ObjCCategory: return "objc-category"; - case CXIdxEntity_ObjCMethod: return "objc-method"; + case CXIdxEntity_ObjCInstanceMethod: return "objc-instance-method"; + case CXIdxEntity_ObjCClassMethod: return "objc-class-method"; case CXIdxEntity_ObjCProperty: return "objc-property"; case CXIdxEntity_ObjCIvar: return "objc-ivar"; case CXIdxEntity_Enum: return "enum"; @@ -1653,6 +1654,20 @@ static void printEntityInfo(const char *cb, printf(" | USR: %s", info->USR); } +static void printProtocolList(const CXIdxObjCProtocolRefListInfo *ProtoInfo, + CXClientData client_data) { + unsigned i; + for (i = 0; i < ProtoInfo->numProtocols; ++i) { + printEntityInfo(" <protocol>", client_data, + ProtoInfo->protocols[i]->protocol); + printf(" | cursor: "); + PrintCursor(ProtoInfo->protocols[i]->cursor); + printf(" | loc: "); + printCXIndexLoc(ProtoInfo->protocols[i]->loc); + printf("\n"); + } +} + static void index_diagnostic(CXClientData client_data, CXDiagnostic diag, void *reserved) { CXString str; @@ -1717,8 +1732,7 @@ static void index_indexDeclaration(CXClientData client_data, IndexData *index_data; const CXIdxObjCCategoryDeclInfo *CatInfo; const CXIdxObjCInterfaceDeclInfo *InterInfo; - const CXIdxObjCProtocolDeclInfo *ProtoInfo; - unsigned i; + const CXIdxObjCProtocolRefListInfo *ProtoInfo; index_data = (IndexData *)client_data; printEntityInfo("[indexDeclaration]", client_data, info->entityInfo); @@ -1729,7 +1743,9 @@ static void index_indexDeclaration(CXClientData client_data, printf(" | container: "); printCXIndexContainer(info->container); printf(" | isRedecl: %d", info->isRedeclaration); - printf(" | isDef: %d\n", info->isDefinition); + printf(" | isDef: %d", info->isDefinition); + printf(" | isContainer: %d", info->isContainer); + printf(" | isImplicit: %d\n", info->isImplicit); if (clang_index_isEntityObjCContainerKind(info->entityInfo->kind)) { const char *kindName = 0; @@ -1754,7 +1770,7 @@ static void index_indexDeclaration(CXClientData client_data, if ((InterInfo = clang_index_getObjCInterfaceDeclInfo(info))) { if (InterInfo->superInfo) { - printEntityInfo(" <ObjCInterfaceInfo>: base", client_data, + printEntityInfo(" <base>", client_data, InterInfo->superInfo->base); printf(" | cursor: "); PrintCursor(InterInfo->superInfo->cursor); @@ -1762,27 +1778,10 @@ static void index_indexDeclaration(CXClientData client_data, printCXIndexLoc(InterInfo->superInfo->loc); printf("\n"); } - for (i = 0; i < InterInfo->numProtocols; ++i) { - printEntityInfo(" <ObjCInterfaceInfo>: protocol", client_data, - InterInfo->protocols[i]->protocol); - printf(" | cursor: "); - PrintCursor(InterInfo->protocols[i]->cursor); - printf(" | loc: "); - printCXIndexLoc(InterInfo->protocols[i]->loc); - printf("\n"); - } } - if ((ProtoInfo = clang_index_getObjCProtocolDeclInfo(info))) { - for (i = 0; i < ProtoInfo->numProtocols; ++i) { - printEntityInfo(" <ObjCProtocolInfo>: protocol", client_data, - ProtoInfo->protocols[i]->protocol); - printf(" | cursor: "); - PrintCursor(ProtoInfo->protocols[i]->cursor); - printf(" | loc: "); - printCXIndexLoc(ProtoInfo->protocols[i]->loc); - printf("\n"); - } + if ((ProtoInfo = clang_index_getObjCProtocolRefListInfo(info))) { + printProtocolList(ProtoInfo, client_data); } if (outData->outContainer) @@ -1799,7 +1798,7 @@ static void index_indexEntityReference(CXClientData client_data, printEntityInfo(" | <parent>:", client_data, info->parentEntity); printf(" | container: "); printCXIndexContainer(info->container); - printf(" | kind: "); + printf(" | refkind: "); switch (info->kind) { case CXIdxEntityRef_Direct: printf("direct"); break; case CXIdxEntityRef_ImplicitProperty: printf("implicit prop"); break; |