Kill some CXDecl-related APIs that have been superceded by
CXCursor-based APIs.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94037 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/clang-c/Index.h b/include/clang-c/Index.h
index 00b4dfe..f1f36e5 100644
--- a/include/clang-c/Index.h
+++ b/include/clang-c/Index.h
@@ -438,9 +438,7 @@
/*
* CXDecl Operations.
*/
-CINDEX_LINKAGE CXCursor clang_getCursorFromDecl(CXDecl);
CINDEX_LINKAGE CXEntity clang_getEntityFromDecl(CXIndex, CXDecl);
-CINDEX_LINKAGE CXString clang_getDeclSpelling(CXDecl);
/**
* \brief Identifies a specific source location within a translation
@@ -610,13 +608,6 @@
unsigned *endLine,
unsigned *endColumn);
-/*
- * If CXCursorKind == Cursor_Reference, then this will return the referenced
- * declaration.
- * If CXCursorKind == Cursor_Declaration, then this will return the declaration.
- */
-CINDEX_LINKAGE CXDecl clang_getCursorDecl(CXCursor);
-
/**
* \brief A semantic string that describes a code-completion result.
*
diff --git a/tools/CIndex/CIndex.cpp b/tools/CIndex/CIndex.cpp
index 485e6c9..b9bd48f 100644
--- a/tools/CIndex/CIndex.cpp
+++ b/tools/CIndex/CIndex.cpp
@@ -594,36 +594,6 @@
}
//===----------------------------------------------------------------------===//
-// CXDecl Operations.
-//===----------------------------------------------------------------------===//
-
-extern "C" {
-CXString clang_getDeclSpelling(CXDecl AnonDecl) {
- assert(AnonDecl && "Passed null CXDecl");
- Decl *D = static_cast<Decl *>(AnonDecl);
- NamedDecl *ND = dyn_cast<NamedDecl>(D);
- if (!ND)
- return CIndexer::createCXString("");
-
- if (ObjCMethodDecl *OMD = dyn_cast<ObjCMethodDecl>(ND))
- return CIndexer::createCXString(OMD->getSelector().getAsString().c_str(),
- true);
-
- if (ObjCCategoryImplDecl *CIMP = dyn_cast<ObjCCategoryImplDecl>(ND))
- // No, this isn't the same as the code below. getIdentifier() is non-virtual
- // and returns different names. NamedDecl returns the class name and
- // ObjCCategoryImplDecl returns the category name.
- return CIndexer::createCXString(CIMP->getIdentifier()->getNameStart());
-
- if (ND->getIdentifier())
- return CIndexer::createCXString(ND->getIdentifier()->getNameStart());
-
- return CIndexer::createCXString("");
-}
-
-} // end: extern "C"
-
-//===----------------------------------------------------------------------===//
// CXFile Operations.
//===----------------------------------------------------------------------===//
@@ -692,6 +662,27 @@
return CursorVis.VisitChildren(parent);
}
+static CXString getDeclSpelling(Decl *D) {
+ NamedDecl *ND = dyn_cast_or_null<NamedDecl>(D);
+ if (!ND)
+ return CIndexer::createCXString("");
+
+ if (ObjCMethodDecl *OMD = dyn_cast<ObjCMethodDecl>(ND))
+ return CIndexer::createCXString(OMD->getSelector().getAsString().c_str(),
+ true);
+
+ if (ObjCCategoryImplDecl *CIMP = dyn_cast<ObjCCategoryImplDecl>(ND))
+ // No, this isn't the same as the code below. getIdentifier() is non-virtual
+ // and returns different names. NamedDecl returns the class name and
+ // ObjCCategoryImplDecl returns the category name.
+ return CIndexer::createCXString(CIMP->getIdentifier()->getNameStart());
+
+ if (ND->getIdentifier())
+ return CIndexer::createCXString(ND->getIdentifier()->getNameStart());
+
+ return CIndexer::createCXString("");
+}
+
CXString clang_getCursorSpelling(CXCursor C) {
assert(getCursorDecl(C) && "CXCursor has null decl");
if (clang_isTranslationUnit(C.kind))
@@ -720,11 +711,11 @@
if (clang_isExpression(C.kind)) {
Decl *D = getDeclFromExpr(getCursorExpr(C));
if (D)
- return clang_getDeclSpelling(D);
+ return getDeclSpelling(D);
return CIndexer::createCXString("");
}
- return clang_getDeclSpelling(getCursorDecl(C));
+ return getDeclSpelling(getCursorDecl(C));
}
const char *clang_getCursorKindSpelling(enum CXCursorKind Kind) {
@@ -817,11 +808,6 @@
return X == Y;
}
-CXCursor clang_getCursorFromDecl(CXDecl AnonDecl) {
- assert(AnonDecl && "Passed null CXDecl");
- return MakeCXCursor(static_cast<NamedDecl *>(AnonDecl));
-}
-
unsigned clang_isInvalid(enum CXCursorKind K) {
return K >= CXCursor_FirstInvalid && K <= CXCursor_LastInvalid;
}
@@ -850,23 +836,6 @@
return C.kind;
}
-CXDecl clang_getCursorDecl(CXCursor C) {
- if (clang_isDeclaration(C.kind))
- return getCursorDecl(C);
-
- if (clang_isReference(C.kind)) {
- if (getCursorStmt(C))
- return getDeclFromExpr(getCursorStmt(C));
-
- return getCursorDecl(C);
- }
-
- if (clang_isExpression(C.kind))
- return getDeclFromExpr(getCursorStmt(C));
-
- return 0;
-}
-
static SourceLocation getLocationFromExpr(Expr *E) {
if (ObjCMessageExpr *Msg = dyn_cast<ObjCMessageExpr>(E))
return /*FIXME:*/Msg->getLeftLoc();
diff --git a/tools/CIndex/CIndex.exports b/tools/CIndex/CIndex.exports
index 2731549..05e3b61 100644
--- a/tools/CIndex/CIndex.exports
+++ b/tools/CIndex/CIndex.exports
@@ -12,17 +12,14 @@
_clang_getCompletionChunkKind
_clang_getCompletionChunkText
_clang_getCursor
-_clang_getCursorDecl
_clang_getCursorDefinition
_clang_getCursorExtent
-_clang_getCursorFromDecl
_clang_getCursorKind
_clang_getCursorKindSpelling
_clang_getCursorLocation
_clang_getCursorReferenced
_clang_getCursorSpelling
_clang_getCursorUSR
-_clang_getDeclSpelling
_clang_getDeclaration
_clang_getDefinitionSpellingAndExtent
_clang_getEntityFromDecl