forked from OSchip/llvm-project
Kill some CXDecl-related APIs that have been superceded by
CXCursor-based APIs. llvm-svn: 94037
This commit is contained in:
parent
2582af00d4
commit
dd969c897e
|
@ -438,9 +438,7 @@ CINDEX_LINKAGE CXDecl clang_getDeclaration(CXEntity, CXTranslationUnit);
|
|||
/*
|
||||
* 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 @@ CINDEX_LINKAGE void clang_getDefinitionSpellingAndExtent(CXCursor,
|
|||
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.
|
||||
*
|
||||
|
|
|
@ -593,36 +593,6 @@ CXSourceLocation clang_getRangeEnd(CXSourceRange range) {
|
|||
return Result;
|
||||
}
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// 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 @@ unsigned clang_visitChildren(CXTranslationUnit tu,
|
|||
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 @@ CXString clang_getCursorSpelling(CXCursor C) {
|
|||
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 @@ unsigned clang_equalCursors(CXCursor X, CXCursor Y) {
|
|||
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 @@ CXCursorKind clang_getCursorKind(CXCursor C) {
|
|||
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();
|
||||
|
|
|
@ -12,17 +12,14 @@ _clang_getCompletionChunkCompletionString
|
|||
_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
|
||||
|
|
Loading…
Reference in New Issue