summaryrefslogtreecommitdiffstats
path: root/tools/c-index-test
diff options
context:
space:
mode:
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>2011-11-14 22:39:19 +0000
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>2011-11-14 22:39:19 +0000
commitc71d55469e7d5f7b376a30620617a175a9442da9 (patch)
treeae4897541142bdea0dfe0863eff08be6c84c6e35 /tools/c-index-test
parentb3029960632ca8a3248e74770eda64d6c16f7246 (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.c49
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;