IndexingContext.h revision aca19be8731fc31cff68702de0dc7f30ce908979
14e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis//===- IndexingContext.h - Higher level API functions ------------------------===// 24e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis// 34e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis// The LLVM Compiler Infrastructure 44e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis// 54e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis// This file is distributed under the University of Illinois Open Source 64e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis// License. See LICENSE.TXT for details. 74e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis// 84e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis//===----------------------------------------------------------------------===// 94e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 104e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis#include "Index_Internal.h" 114e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis#include "CXCursor.h" 124e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 134e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis#include "clang/AST/Decl.h" 144e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis#include "clang/AST/DeclGroup.h" 154e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis#include "llvm/ADT/DenseMap.h" 164e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 174e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidisnamespace clang { 184e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis class FileEntry; 194e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis class ObjCPropertyDecl; 204e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 214e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidisnamespace cxindex { 224e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis class IndexingContext; 234e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 244e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidisclass IndexingContext { 254e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis ASTContext *Ctx; 264e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis CXClientData ClientData; 274e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis IndexerCallbacks &CB; 284e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis unsigned IndexOptions; 294e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis CXTranslationUnit CXTU; 304e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 314e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis typedef llvm::DenseMap<const FileEntry *, CXIdxFile> FileMapTy; 324e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis typedef llvm::DenseMap<const NamedDecl *, CXIdxEntity> EntityMapTy; 334e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis typedef llvm::DenseMap<const void *, CXIdxMacro> MacroMapTy; 344e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis typedef llvm::DenseMap<const DeclContext *, CXIdxContainer> ContainerMapTy; 354e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis FileMapTy FileMap; 364e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis EntityMapTy EntityMap; 374e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis MacroMapTy MacroMap; 384e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis ContainerMapTy ContainerMap; 394e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 404e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis SmallVector<DeclGroupRef, 8> TUDeclsInObjCContainer; 414e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 424e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis llvm::SmallString<256> StrScratch; 434e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 444e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis class StrAdapter { 454e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis llvm::SmallString<256> &Scratch; 464e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 474e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis public: 484e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis StrAdapter(IndexingContext *indexCtx) 494e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis : Scratch(indexCtx->StrScratch) {} 504e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis ~StrAdapter() { Scratch.clear(); } 514e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 524e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis const char *toCStr(StringRef Str); 534e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 544e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis unsigned getCurSize() const { return Scratch.size(); } 554e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 564e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis const char *getCStr(unsigned CharIndex) { 574e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis Scratch.push_back('\0'); 584e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis return Scratch.data() + CharIndex; 594e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis } 604e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 614e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis SmallVectorImpl<char> &getBuffer() { return Scratch; } 624e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis }; 634e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 644e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidispublic: 654e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis IndexingContext(CXClientData clientData, IndexerCallbacks &indexCallbacks, 664e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis unsigned indexOptions, CXTranslationUnit cxTU) 674e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis : Ctx(0), ClientData(clientData), CB(indexCallbacks), 684e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis IndexOptions(indexOptions), CXTU(cxTU) { } 694e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 704e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis ASTContext &getASTContext() const { return *Ctx; } 714e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 724e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis void setASTContext(ASTContext &ctx); 734e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 744e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis void ppIncludedFile(SourceLocation hashLoc, 754e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis StringRef filename, const FileEntry *File, 764e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis bool isImport, bool isAngled); 774e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 784e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis void ppMacroDefined(SourceLocation Loc, StringRef Name, 794e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis SourceLocation DefBegin, unsigned Length, 804e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis const void *OpaqueMacro); 814e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 824e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis void ppMacroUndefined(SourceLocation Loc, StringRef Name, 834e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis const void *OpaqueMacro); 844e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 854e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis void ppMacroExpanded(SourceLocation Loc, StringRef Name, 864e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis const void *OpaqueMacro); 874e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 884e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis void invokeStartedTranslationUnit(); 894e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 904e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis void invokeFinishedTranslationUnit(); 914e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 924e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis void indexDecl(const Decl *D); 934e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 944e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis void indexTagDecl(const TagDecl *D); 954e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 964e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis void indexTypeSourceInfo(TypeSourceInfo *TInfo, const NamedDecl *Parent, 974e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis const DeclContext *DC = 0); 984e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 994e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis void indexTypeLoc(TypeLoc TL, const NamedDecl *Parent, 1004e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis const DeclContext *DC); 1014e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 1024e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis void indexDeclContext(const DeclContext *DC); 1034e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 1044e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis void indexBody(const Stmt *S, const DeclContext *DC); 1054e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 1064e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis void handleDiagnostic(const StoredDiagnostic &StoredDiag); 1074e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 1084e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis void handleFunction(const FunctionDecl *FD); 1094e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 1104e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis void handleVar(const VarDecl *D); 1114e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 1124e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis void handleField(const FieldDecl *D); 1134e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 1144e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis void handleEnumerator(const EnumConstantDecl *D); 1154e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 1164e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis void handleTagDecl(const TagDecl *D); 1174e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 1184e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis void handleTypedef(const TypedefDecl *D); 1194e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 1204e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis void handleObjCInterface(const ObjCInterfaceDecl *D); 1214e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 1224e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis void defineObjCInterface(const ObjCInterfaceDecl *D); 1234e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 1244e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis void handleObjCProtocol(const ObjCProtocolDecl *D); 1254e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 1264e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis void handleObjCCategory(const ObjCCategoryDecl *D); 1274e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 1284e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis void handleObjCMethod(const ObjCMethodDecl *D); 1294e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 1304e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis void handleObjCProperty(const ObjCPropertyDecl *D); 1314e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 1324e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis void handleReference(const NamedDecl *D, SourceLocation Loc, 1334e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis const NamedDecl *Parent, 1344e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis const DeclContext *DC, 135aca19be8731fc31cff68702de0dc7f30ce908979Argyrios Kyrtzidis const Expr *E = 0, 136aca19be8731fc31cff68702de0dc7f30ce908979Argyrios Kyrtzidis CXIdxEntityRefKind Kind = CXIdxEntityRef_Direct); 1374e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 1384e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis void invokeStartedTagTypeDefinition(const TagDecl *D); 1394e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 1404e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis void invokeStartedStatementBody(const NamedDecl *D, const DeclContext *DC); 1414e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 1424e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis void invokeStartedObjCContainer(const ObjCContainerDecl *D); 1434e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 1444e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis void invokeEndedContainer(const DeclContext *DC); 1454e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 1464e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis bool isNotFromSourceFile(SourceLocation Loc) const; 1474e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 1484e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis void indexTUDeclsInObjCContainer(); 1494e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis void indexDeclGroupRef(DeclGroupRef DG); 1504e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 1514e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis void addTUDeclInObjCContainer(DeclGroupRef DG) { 1524e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis TUDeclsInObjCContainer.push_back(DG); 1534e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis } 1544e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 1554e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis void translateLoc(SourceLocation Loc, CXIdxFile *indexFile, CXFile *file, 1564e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis unsigned *line, unsigned *column, unsigned *offset); 1574e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 1584e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidisprivate: 1594e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis void addEntityInMap(const NamedDecl *D, CXIdxEntity entity); 1604e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 1614e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis void addContainerInMap(const DeclContext *DC, CXIdxContainer container); 1624e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 1634e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis CXIdxEntity getIndexEntity(const NamedDecl *D); 1644e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 1654e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis const NamedDecl *getEntityDecl(const NamedDecl *D) const; 1664e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 1674e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis CXIdxContainer getIndexContainer(const NamedDecl *D) const { 1684e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis return getIndexContainerForDC(D->getDeclContext()); 1694e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis } 1704e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 1714e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis const DeclContext *getScopedContext(const DeclContext *DC) const; 1724e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis CXIdxContainer getIndexContainerForDC(const DeclContext *DC) const; 1734e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 1744e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis CXIdxFile getIndexFile(const FileEntry *File); 1754e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 1764e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis CXIdxLoc getIndexLoc(SourceLocation Loc) const; 1774e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 1784e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis void getIndexedEntityInfo(const NamedDecl *D, 1794e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis CXIdxIndexedEntityInfo &IdxEntityInfo, 1804e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis CXIdxEntityInfo &EntityInfo, 1814e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis CXIdxIndexedDeclInfo &IdxDeclInfo, 1824e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis StrAdapter &SA); 1834e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 1844e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis void getIndexedDeclInfo(const NamedDecl *D, 1854e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis CXIdxIndexedDeclInfo &IdxDeclInfo); 1864e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 1874e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis void getIndexedRedeclInfo(const NamedDecl *D, 1884e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis CXIdxIndexedRedeclInfo &RedeclInfo, 1894e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis CXIdxIndexedDeclInfo &IdxDeclInfo); 1904e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 1914e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis void getContainerInfo(const NamedDecl *D, 1924e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis CXIdxContainerInfo &ContainerInfo); 1934e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 1944e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis void getEntityInfo(const NamedDecl *D, 1954e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis CXIdxEntityInfo &EntityInfo, 1964e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis StrAdapter &SA); 1974e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 1984e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis CXCursor getCursor(const NamedDecl *D) { 1994e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis return cxcursor::MakeCXCursor(const_cast<NamedDecl*>(D), CXTU); 2004e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis } 2014e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 2024e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis CXCursor getRefCursor(const NamedDecl *D, SourceLocation Loc); 2034e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis}; 2044e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis 2054e7064fa7e344e8f87a5b8457e96dfdd252c4a9eArgyrios Kyrtzidis}} // end clang::cxindex 206