Eliminate cursor kinds used to express definitions. Instead, provide
CIndex functions that (1) map from a reference or declaration to the
corresponding definition, if available, and (2) determine whether a
given declaration cursor is also a definition. This eliminates a lot
of duplication in the cursor kinds, and maps more closely to the Clang
ASTs.
This is another API + ABI breaker with no deprecation. Yay, progress.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93893 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/tools/c-index-test/c-index-test.c b/tools/c-index-test/c-index-test.c
index 34332d3..391f577 100644
--- a/tools/c-index-test/c-index-test.c
+++ b/tools/c-index-test/c-index-test.c
@@ -59,6 +59,9 @@
CXSourceLocation Loc = clang_getCursorLocation(Referenced);
printf(":%d:%d", Loc.line, Loc.column);
}
+
+ if (clang_isCursorDefinition(Cursor))
+ printf(" (Definition)");
}
}
@@ -125,7 +128,8 @@
unsigned startLine, startColumn, endLine, endColumn, curLine, curColumn;
CXCursor Ref;
- if (Cursor.kind != CXCursor_FunctionDefn)
+ if (Cursor.kind != CXCursor_FunctionDecl ||
+ !clang_isCursorDefinition(Cursor))
return;
clang_getDefinitionSpellingAndExtent(Cursor, &startBuf, &endBuf,