clang 10.0.0git

Classes | Typedefs | Enumerations | Functions | Variables
clang::index Namespace Reference

## Classes
class | CommentToXMLConverter
struct | DeclOccurrence
class | FileIndexRecord
| Stores the declaration occurrences seen in a particular source or header file of a translation unit. More...
class | IndexDataConsumer
class | IndexingContext
struct | IndexingOptions
class | SimpleFormatContext
| A small class to be used by libclang clients to format a declaration string in memory. More...
struct | SymbolInfo
struct | SymbolRelation
| Represents a relation to another symbol for a symbol occurrence. More...

## Typedefs
typedef uint16_t | SymbolPropertySet
typedef unsigned | SymbolRoleSet

## Enumerations
enum | SymbolKind : uint8_t { SymbolKind::Unknown, SymbolKind::Module, SymbolKind::Namespace, SymbolKind::NamespaceAlias, SymbolKind::Macro, SymbolKind::Enum, SymbolKind::Struct, SymbolKind::Class, SymbolKind::Protocol, SymbolKind::Extension, SymbolKind::Union, SymbolKind::TypeAlias, SymbolKind::Function, SymbolKind::Variable, SymbolKind::Field, SymbolKind::EnumConstant, SymbolKind::InstanceMethod, SymbolKind::ClassMethod, SymbolKind::StaticMethod, SymbolKind::InstanceProperty, SymbolKind::ClassProperty, SymbolKind::StaticProperty, SymbolKind::Constructor, SymbolKind::Destructor, SymbolKind::ConversionFunction, SymbolKind::Parameter, SymbolKind::Using }
enum | SymbolLanguage : uint8_t { SymbolLanguage::C, SymbolLanguage::ObjC, SymbolLanguage::CXX, SymbolLanguage::Swift }
enum | SymbolSubKind : uint8_t { SymbolSubKind::None, SymbolSubKind::CXXCopyConstructor, SymbolSubKind::CXXMoveConstructor, SymbolSubKind::AccessorGetter, SymbolSubKind::AccessorSetter, SymbolSubKind::UsingTypename, SymbolSubKind::UsingValue }
| Language specific sub-kinds. More...
enum | SymbolProperty : SymbolPropertySet { SymbolProperty::Generic = 1 << 0, SymbolProperty::TemplatePartialSpecialization = 1 << 1, SymbolProperty::TemplateSpecialization = 1 << 2, SymbolProperty::UnitTest = 1 << 3, SymbolProperty::IBAnnotated = 1 << 4, SymbolProperty::IBOutletCollection = 1 << 5, SymbolProperty::GKInspectable = 1 << 6, SymbolProperty::Local = 1 << 7, SymbolProperty::ProtocolInterface = 1 << 8 }
| Set of properties that provide additional info about a symbol. More...
enum | SymbolRole : uint32_t { SymbolRole::Declaration = 1 << 0, SymbolRole::Definition = 1 << 1, SymbolRole::Reference = 1 << 2, SymbolRole::Read = 1 << 3, SymbolRole::Write = 1 << 4, SymbolRole::Call = 1 << 5, SymbolRole::Dynamic = 1 << 6, SymbolRole::AddressOf = 1 << 7, SymbolRole::Implicit = 1 << 8, SymbolRole::Undefinition = 1 << 9, SymbolRole::RelationChildOf = 1 << 10, SymbolRole::RelationBaseOf = 1 << 11, SymbolRole::RelationOverrideOf = 1 << 12, SymbolRole::RelationReceivedBy = 1 << 13, SymbolRole::RelationCalledBy = 1 << 14, SymbolRole::RelationExtendedBy = 1 << 15, SymbolRole::RelationAccessorOf = 1 << 16, SymbolRole::RelationContainedBy = 1 << 17, SymbolRole::RelationIBTypeOf = 1 << 18, SymbolRole::RelationSpecializationOf = 1 << 19, SymbolRole::NameReference = 1 << 20 }
| Set of roles that are attributed to symbol occurrences. More...

## Functions
std::unique_ptr< ASTConsumer > | createIndexingASTConsumer (std::shared_ptr< IndexDataConsumer > DataConsumer, const IndexingOptions &Opts, std::shared_ptr< Preprocessor > PP, std::function< bool(const Decl *)> ShouldSkipFunctionBody)
| Creates an ASTConsumer that indexes all symbols (macros and AST decls). More...
std::unique_ptr< ASTConsumer > | createIndexingASTConsumer (std::shared_ptr< IndexDataConsumer > DataConsumer, const IndexingOptions &Opts, std::shared_ptr< Preprocessor > PP)
std::unique_ptr< FrontendAction > | createIndexingAction (std::shared_ptr< IndexDataConsumer > DataConsumer, const IndexingOptions &Opts)
| Creates a frontend action that indexes all symbols (macros and AST decls). More...
void | indexASTUnit (ASTUnit &Unit, IndexDataConsumer &DataConsumer, IndexingOptions Opts)
| Recursively indexes all decls in the AST. More...
void | indexTopLevelDecls (ASTContext &Ctx, Preprocessor &PP, ArrayRef< const Decl *> Decls, IndexDataConsumer &DataConsumer, IndexingOptions Opts)
| Recursively indexes `Decls`. More...
std::unique_ptr< PPCallbacks > | indexMacrosCallback (IndexDataConsumer &Consumer, IndexingOptions Opts)
| Creates a PPCallbacks that indexes macros and feeds macros to `Consumer`. More...
void | indexModuleFile (serialization::ModuleFile &Mod, ASTReader &Reader, IndexDataConsumer &DataConsumer, IndexingOptions Opts)
| Recursively indexes all top-level decls in the module. More...
SymbolInfo | getSymbolInfo (const Decl *D)
SymbolInfo | getSymbolInfoForMacro (const MacroInfo &MI)
bool | isFunctionLocalSymbol (const Decl *D)
void | applyForEachSymbolRole (SymbolRoleSet Roles, llvm::function_ref< void(SymbolRole)> Fn)
bool | applyForEachSymbolRoleInterruptible (SymbolRoleSet Roles, llvm::function_ref< bool(SymbolRole)> Fn)
void | printSymbolRoles (SymbolRoleSet Roles, raw_ostream &OS)
bool | printSymbolName (const Decl *D, const LangOptions &LO, raw_ostream &OS)
StringRef | getSymbolKindString (SymbolKind K)
StringRef | getSymbolSubKindString (SymbolSubKind K)
StringRef | getSymbolLanguageString (SymbolLanguage K)
void | applyForEachSymbolProperty (SymbolPropertySet Props, llvm::function_ref< void(SymbolProperty)> Fn)
void | printSymbolProperties (SymbolPropertySet Props, raw_ostream &OS)
static StringRef | getUSRSpacePrefix ()
bool | generateUSRForDecl (const Decl *D, SmallVectorImpl< char > &Buf)
| Generate a USR for a Decl, including the USR prefix. More...
void | generateUSRForObjCClass (StringRef Cls, raw_ostream &OS, StringRef ExtSymbolDefinedIn="", StringRef CategoryContextExtSymbolDefinedIn="")
| Generate a USR fragment for an Objective-C class. More...
void | generateUSRForObjCCategory (StringRef Cls, StringRef Cat, raw_ostream &OS, StringRef ClsExtSymbolDefinedIn="", StringRef CatExtSymbolDefinedIn="")
| Generate a USR fragment for an Objective-C class category. More...
void | generateUSRForObjCIvar (StringRef Ivar, raw_ostream &OS)
| Generate a USR fragment for an Objective-C instance variable. More...
void | generateUSRForObjCMethod (StringRef Sel, bool IsInstanceMethod, raw_ostream &OS)
| Generate a USR fragment for an Objective-C method. More...
void | generateUSRForObjCProperty (StringRef Prop, bool isClassProp, raw_ostream &OS)
| Generate a USR fragment for an Objective-C property. More...
void | generateUSRForObjCProtocol (StringRef Prot, raw_ostream &OS, StringRef ExtSymbolDefinedIn="")
| Generate a USR fragment for an Objective-C protocol. More...
void | generateUSRForGlobalEnum (StringRef EnumName, raw_ostream &OS, StringRef ExtSymbolDefinedIn="")
| Generate USR fragment for a global (non-nested) enum. More...
void | generateUSRForEnumConstant (StringRef EnumConstantName, raw_ostream &OS)
| Generate a USR fragment for an enum constant. More...
bool | generateUSRForMacro (const MacroDefinitionRecord *MD, const SourceManager &SM, SmallVectorImpl< char > &Buf)
| Generate a USR for a macro, including the USR prefix. More...
bool | generateUSRForMacro (StringRef MacroName, SourceLocation Loc, const SourceManager &SM, SmallVectorImpl< char > &Buf)
bool | generateUSRForType (QualType T, ASTContext &Ctx, SmallVectorImpl< char > &Buf)
| Generates a USR for a type. More...
bool | generateFullUSRForModule (const Module *Mod, raw_ostream &OS)
| Generate a USR for a module, including the USR prefix. More...
bool | generateFullUSRForTopLevelModuleName (StringRef ModName, raw_ostream &OS)
| Generate a USR for a top-level module name, including the USR prefix. More...
bool | generateUSRFragmentForModule (const Module *Mod, raw_ostream &OS)
| Generate a USR fragment for a module. More...
bool | generateUSRFragmentForModuleName (StringRef ModName, raw_ostream &OS)
| Generate a USR fragment for a module name. More...

## Variables
static const unsigned | SymbolPropertyBitNum = 9
static const unsigned | SymbolRoleBitNum = 21

## Typedef Documentation

## ◆ SymbolPropertySet

typedef uint16_t clang::index::SymbolPropertySet

Definition at line 77 of file IndexSymbol.h.

## ◆ SymbolRoleSet

typedef unsigned clang::index::SymbolRoleSet

Definition at line 127 of file IndexSymbol.h.

## Enumeration Type Documentation

## ◆ SymbolKind

enum clang::index::SymbolKind : uint8_t
| strong

Enumerator
Unknown |
Module |
Namespace |
NamespaceAlias |
Macro |
Enum |
Struct |
Class |
Protocol |
Extension |
Union |
TypeAlias |
Function |
Variable |
Field |
EnumConstant |
InstanceMethod |
ClassMethod |
StaticMethod |
InstanceProperty |
ClassProperty |
StaticProperty |
Constructor |
Destructor |
ConversionFunction |
Parameter |
Using |

Definition at line 23 of file IndexSymbol.h.

## ◆ SymbolLanguage

enum clang::index::SymbolLanguage : uint8_t
| strong

Enumerator
C |
ObjC |
CXX |
Swift |

Definition at line 59 of file IndexSymbol.h.

## ◆ SymbolProperty

enum clang::index::SymbolProperty : SymbolPropertySet
| strong

Set of properties that provide additional info about a symbol.

Enumerator
Generic |
TemplatePartialSpecialization |
TemplateSpecialization |
UnitTest |
IBAnnotated |
IBOutletCollection |
GKInspectable |
Local |
ProtocolInterface | Symbol is part of a protocol interface.

Definition at line 79 of file IndexSymbol.h.

## ◆ SymbolRole

enum clang::index::SymbolRole : uint32_t
| strong

Set of roles that are attributed to symbol occurrences.

Low 9 bits of clang-c/include/Index.h CXSymbolRole mirrors this enum.

Enumerator
Declaration |
Definition |
Reference |
Read |
Write |
Call |
Dynamic |
AddressOf |
Implicit |
Undefinition |
RelationChildOf |
RelationBaseOf |
RelationOverrideOf |
RelationReceivedBy |
RelationCalledBy |
RelationExtendedBy |
RelationAccessorOf |
RelationContainedBy |
RelationIBTypeOf |
RelationSpecializationOf |
NameReference |

Definition at line 96 of file IndexSymbol.h.

## ◆ SymbolSubKind

enum clang::index::SymbolSubKind : uint8_t
| strong

Language specific sub-kinds.

Enumerator
None |
CXXCopyConstructor |
CXXMoveConstructor |
AccessorGetter |
AccessorSetter |
UsingTypename |
UsingValue |

Definition at line 67 of file IndexSymbol.h.

## Function Documentation

## ◆ applyForEachSymbolProperty()

void clang::index::applyForEachSymbolProperty | ( | SymbolPropertySet | Props,
|  | llvm::function_ref< void(SymbolProperty)> | Fn
| ) |  |

Definition at line 547 of file IndexSymbol.cpp.

References APPLY_FOR_PROPERTY, Generic, GKInspectable, IBAnnotated, IBOutletCollection, Local, ProtocolInterface, TemplatePartialSpecialization, TemplateSpecialization, and UnitTest.

Referenced by printSymbolProperties().

## ◆ applyForEachSymbolRole()

void clang::index::applyForEachSymbolRole | ( | SymbolRoleSet | Roles,
|  | llvm::function_ref< void(SymbolRole)> | Fn
| ) |  |

Definition at line 432 of file IndexSymbol.cpp.

References applyForEachSymbolRoleInterruptible().

Referenced by printSymbolRoles().

## ◆ applyForEachSymbolRoleInterruptible()

bool clang::index::applyForEachSymbolRoleInterruptible | ( | SymbolRoleSet | Roles,
|  | llvm::function_ref< bool(SymbolRole)> | Fn
| ) |  |

Definition at line 398 of file IndexSymbol.cpp.

References AddressOf, APPLY_FOR_ROLE, Call, Declaration, Definition, Dynamic, Implicit, NameReference, Read, Reference, RelationAccessorOf, RelationBaseOf, RelationCalledBy, RelationChildOf, RelationContainedBy, RelationExtendedBy, RelationIBTypeOf, RelationOverrideOf, RelationReceivedBy, RelationSpecializationOf, Undefinition, and Write.

Referenced by applyForEachSymbolRole(), and shouldReportOccurrenceForSystemDeclOnlyMode().

## ◆ createIndexingAction()

std::unique_ptr< FrontendAction > clang::index::createIndexingAction | ( | std::shared_ptr< IndexDataConsumer > | DataConsumer,
|  | const IndexingOptions & | Opts
| ) |  |

Creates a frontend action that indexes all symbols (macros and AST decls).

Definition at line 135 of file IndexingAction.cpp.

Referenced by createIndexingASTConsumer().

## ◆ createIndexingASTConsumer() [1/2]

std::unique_ptr< ASTConsumer > clang::index::createIndexingASTConsumer | ( | std::shared_ptr< IndexDataConsumer > | DataConsumer,
|  | const IndexingOptions & | Opts,
|  | std::shared_ptr< Preprocessor > | PP,
|  | std::function< bool(const Decl *)> | ShouldSkipFunctionBody
| ) |  |

Creates an ASTConsumer that indexes all symbols (macros and AST decls).

Definition at line 126 of file IndexingAction.cpp.

## ◆ createIndexingASTConsumer() [2/2]

std::unique_ptr<ASTConsumer> clang::index::createIndexingASTConsumer | ( | std::shared_ptr< IndexDataConsumer > | DataConsumer,
|  | const IndexingOptions & | Opts,
|  | std::shared_ptr< Preprocessor > | PP
| ) |  |
| inline

Definition at line 41 of file IndexingAction.h.

References createIndexingAction(), indexASTUnit(), indexMacrosCallback(), indexModuleFile(), and indexTopLevelDecls().

## ◆ generateFullUSRForModule()

bool clang::index::generateFullUSRForModule | ( | const Module * | Mod,
|  | raw_ostream & | OS
| ) |  |

Generate a USR for a module, including the USR prefix.

Returns
  true on error, false on success.

Definition at line 1128 of file USRGeneration.cpp.

References generateFullUSRForTopLevelModuleName(), generateUSRFragmentForModule(), clang::Module::Name, and clang::Module::Parent.

Referenced by getUSRSpacePrefix().

## ◆ generateFullUSRForTopLevelModuleName()

bool clang::index::generateFullUSRForTopLevelModuleName | ( | StringRef | ModName,
|  | raw_ostream & | OS
| ) |  |

Generate a USR for a top-level module name, including the USR prefix.

Returns
  true on error, false on success.

Definition at line 1137 of file USRGeneration.cpp.

References generateUSRFragmentForModuleName(), and getUSRSpacePrefix().

Referenced by generateFullUSRForModule(), and getUSRSpacePrefix().

## ◆ generateUSRForDecl()

bool clang::index::generateUSRForDecl | ( | const Decl * | D,
|  | SmallVectorImpl< char > & | Buf
| ) |  |

Generate a USR for a Decl, including the USR prefix.

Returns
  true if the results should be ignored, false otherwise.

Definition at line 1073 of file USRGeneration.cpp.

Referenced by clang::cross_tu::CrossTranslationUnitContext::getLookupName(), clang::tooling::getUSRForDecl(), and getUSRSpacePrefix().

## ◆ generateUSRForEnumConstant()

void clang::index::generateUSRForEnumConstant | ( | StringRef | EnumConstantName,
|  | raw_ostream & | OS
| ) |  |

Generate a USR fragment for an enum constant.

Definition at line 1068 of file USRGeneration.cpp.

Referenced by getUSRSpacePrefix().

## ◆ generateUSRForGlobalEnum()

void clang::index::generateUSRForGlobalEnum | ( | StringRef | EnumName,
|  | raw_ostream & | OS,
|  | StringRef | ExtSymbolDefinedIn = `""`
| ) |  |

Generate USR fragment for a global (non-nested) enum.

Definition at line 1061 of file USRGeneration.cpp.

Referenced by getUSRSpacePrefix().

## ◆ generateUSRForMacro() [1/2]

bool clang::index::generateUSRForMacro | ( | const MacroDefinitionRecord * | MD,
|  | const SourceManager & | SM,
|  | SmallVectorImpl< char > & | Buf
| ) |  |

Generate a USR for a macro, including the USR prefix.

Returns
  true on error, false on success.

Definition at line 1086 of file USRGeneration.cpp.

References clang::MacroDefinitionRecord::getLocation(), clang::IdentifierInfo::getName(), clang::MacroDefinitionRecord::getName(), and SM.

Referenced by getUSRSpacePrefix().

## ◆ generateUSRForMacro() [2/2]

bool clang::index::generateUSRForMacro | ( | StringRef | MacroName,
|  | SourceLocation | Loc,
|  | const SourceManager & | SM,
|  | SmallVectorImpl< char > & | Buf
| ) |  |

Definition at line 1096 of file USRGeneration.cpp.

References getUSRSpacePrefix(), clang::SourceManager::isInSystemHeader(), clang::SourceLocation::isInvalid(), and printLoc().

## ◆ generateUSRForObjCCategory()

void clang::index::generateUSRForObjCCategory | ( | StringRef | Cls,
|  | StringRef | Cat,
|  | raw_ostream & | OS,
|  | StringRef | ClsExtSymbolDefinedIn = `""`,
|  | StringRef | CatExtSymbolDefinedIn = `""`
| ) |  |

Generate a USR fragment for an Objective-C class category.

Definition at line 1031 of file USRGeneration.cpp.

Referenced by getUSRSpacePrefix().

## ◆ generateUSRForObjCClass()

void clang::index::generateUSRForObjCClass | ( | StringRef | Cls,
|  | raw_ostream & | OS,
|  | StringRef | ExtSymbolDefinedIn = `""`,
|  | StringRef | CategoryContextExtSymbolDefinedIn = `""`
| ) |  |

Generate a USR fragment for an Objective-C class.

Definition at line 1023 of file USRGeneration.cpp.

Referenced by getUSRSpacePrefix().

## ◆ generateUSRForObjCIvar()

void clang::index::generateUSRForObjCIvar | ( | StringRef | Ivar,
|  | raw_ostream & | OS
| ) |  |

Generate a USR fragment for an Objective-C instance variable.

The complete USR can be created by concatenating the USR for the encompassing class with this USR fragment.

Definition at line 1039 of file USRGeneration.cpp.

Referenced by getUSRSpacePrefix().

## ◆ generateUSRForObjCMethod()

void clang::index::generateUSRForObjCMethod | ( | StringRef | Sel,
|  | bool | IsInstanceMethod,
|  | raw_ostream & | OS
| ) |  |

Generate a USR fragment for an Objective-C method.

Definition at line 1043 of file USRGeneration.cpp.

Referenced by getUSRSpacePrefix().

## ◆ generateUSRForObjCProperty()

void clang::index::generateUSRForObjCProperty | ( | StringRef | Prop,
|  | bool | isClassProp,
|  | raw_ostream & | OS
| ) |  |

Generate a USR fragment for an Objective-C property.

Definition at line 1049 of file USRGeneration.cpp.

Referenced by getUSRSpacePrefix().

## ◆ generateUSRForObjCProtocol()

void clang::index::generateUSRForObjCProtocol | ( | StringRef | Prot,
|  | raw_ostream & | OS,
|  | StringRef | ExtSymbolDefinedIn = `""`
| ) |  |

Generate a USR fragment for an Objective-C protocol.

Definition at line 1054 of file USRGeneration.cpp.

Referenced by getUSRSpacePrefix().

## ◆ generateUSRForType()

bool clang::index::generateUSRForType | ( | QualType | T,
|  | ASTContext & | Ctx,
|  | SmallVectorImpl< char > & | Buf
| ) |  |

Generates a USR for a type.

Returns
  true on error, false on success.

Definition at line 1117 of file USRGeneration.cpp.

References clang::QualType::getCanonicalType(), and clang::QualType::isNull().

Referenced by getUSRSpacePrefix().

## ◆ generateUSRFragmentForModule()

bool clang::index::generateUSRFragmentForModule | ( | const Module * | Mod,
|  | raw_ostream & | OS
| ) |  |

Generate a USR fragment for a module.

Returns
  true on error, false on success.

Definition at line 1143 of file USRGeneration.cpp.

References generateUSRFragmentForModuleName(), and clang::Module::Name.

Referenced by generateFullUSRForModule(), and getUSRSpacePrefix().

## ◆ generateUSRFragmentForModuleName()

bool clang::index::generateUSRFragmentForModuleName | ( | StringRef | ModName,
|  | raw_ostream & | OS
| ) |  |

Generate a USR fragment for a module name.

Returns
  true on error, false on success.

Definition at line 1148 of file USRGeneration.cpp.

Referenced by generateFullUSRForTopLevelModuleName(), generateUSRFragmentForModule(), and getUSRSpacePrefix().

## ◆ getSymbolInfo()

SymbolInfo clang::index::getSymbolInfo | ( | const Decl * | D | ) |

Definition at line 85 of file IndexSymbol.cpp.

References AccessorGetter, AccessorSetter, C, checkForIBOutlets(), Class, ClassMethod, Constructor, ConversionFunction, CXX, CXXCopyConstructor, CXXMoveConstructor, Destructor, Enum, EnumConstant, Extension, Field, Function, Generic, clang::Decl::getAttr(), clang::Decl::getDeclContext(), clang::Decl::getKind(), GKInspectable, clang::Decl::hasAttr(), IBAnnotated, clang::if(), InstanceMethod, InstanceProperty, isFunctionLocalSymbol(), clang::ObjCMethodDecl::isInstanceMethod(), clang::ObjCMethodDecl::isPropertyAccessor(), clang::CXXMethodDecl::isStatic(), isUnitTest(), isUnitTestCase(), clang::index::SymbolInfo::Kind, clang::index::SymbolInfo::Lang, Local, Module, Namespace, NamespaceAlias, None, ObjC, clang::ObjCMethodDecl::param_size(), Parameter, clang::index::SymbolInfo::Properties, Protocol, ProtocolInterface, StaticMethod, StaticProperty, Struct, clang::index::SymbolInfo::SubKind, Swift, TemplatePartialSpecialization, TemplateSpecialization, clang::FunctionDecl::TK_FunctionTemplateSpecialization, clang::TTK_Class, clang::TTK_Enum, clang::TTK_Interface, clang::TTK_Struct, clang::TTK_Union, TypeAlias, Union, UnitTest, Unknown, Using, UsingTypename, UsingValue, and Variable.

## ◆ getSymbolInfoForMacro()

SymbolInfo clang::index::getSymbolInfoForMacro | ( | const MacroInfo & | MI | ) |

Definition at line 389 of file IndexSymbol.cpp.

References C, clang::index::SymbolInfo::Kind, clang::index::SymbolInfo::Lang, Macro, None, clang::index::SymbolInfo::Properties, and clang::index::SymbolInfo::SubKind.

## ◆ getSymbolKindString()

StringRef clang::index::getSymbolKindString | ( | SymbolKind | K | ) |

Definition at line 491 of file IndexSymbol.cpp.

References Class, ClassMethod, ClassProperty, Constructor, ConversionFunction, Destructor, Enum, EnumConstant, Extension, Field, Function, InstanceMethod, InstanceProperty, Macro, Module, Namespace, NamespaceAlias, Parameter, Protocol, StaticMethod, StaticProperty, Struct, TypeAlias, Union, Unknown, Using, and Variable.

## ◆ getSymbolLanguageString()

StringRef clang::index::getSymbolLanguageString | ( | SymbolLanguage | K | ) |

Definition at line 537 of file IndexSymbol.cpp.

References C, CXX, ObjC, and Swift.

## ◆ getSymbolSubKindString()

StringRef clang::index::getSymbolSubKindString | ( | SymbolSubKind | K | ) |

Definition at line 524 of file IndexSymbol.cpp.

References AccessorGetter, AccessorSetter, CXXCopyConstructor, CXXMoveConstructor, None, UsingTypename, and UsingValue.

## ◆ getUSRSpacePrefix()

static StringRef clang::index::getUSRSpacePrefix | ( |  | ) |
| inline static

Definition at line 26 of file USRGeneration.h.

References generateFullUSRForModule(), generateFullUSRForTopLevelModuleName(), generateUSRForDecl(), generateUSRForEnumConstant(), generateUSRForGlobalEnum(), generateUSRForMacro(), generateUSRForObjCCategory(), generateUSRForObjCClass(), generateUSRForObjCIvar(), generateUSRForObjCMethod(), generateUSRForObjCProperty(), generateUSRForObjCProtocol(), generateUSRForType(), generateUSRFragmentForModule(), generateUSRFragmentForModuleName(), and SM.

Referenced by generateFullUSRForTopLevelModuleName(), and generateUSRForMacro().

## ◆ indexASTUnit()

void clang::index::indexASTUnit | ( | ASTUnit & | Unit,
|  | IndexDataConsumer & | DataConsumer,
|  | IndexingOptions | Opts
| ) |  |

Recursively indexes all decls in the AST.

Definition at line 160 of file IndexingAction.cpp.

References clang::index::IndexDataConsumer::finish(), clang::ASTUnit::getASTContext(), clang::ASTUnit::getPreprocessor(), clang::ASTUnit::getPreprocessorPtr(), clang::index::IndexingOptions::IndexMacrosInPreprocessor, indexPreprocessorMacros(), indexTranslationUnit(), clang::index::IndexDataConsumer::initialize(), clang::index::IndexingContext::setASTContext(), and clang::index::IndexDataConsumer::setPreprocessor().

Referenced by createIndexingASTConsumer().

## ◆ indexMacrosCallback()

std::unique_ptr< PPCallbacks > clang::index::indexMacrosCallback | ( | IndexDataConsumer & | Consumer,
|  | IndexingOptions | Opts
| ) |  |

Creates a PPCallbacks that indexes macros and feeds macros to `Consumer`.

The caller is responsible for calling `Consumer.setPreprocessor()`.

Definition at line 191 of file IndexingAction.cpp.

Referenced by createIndexingASTConsumer().

## ◆ indexModuleFile()

void clang::index::indexModuleFile | ( | serialization::ModuleFile & | Mod,
|  | ASTReader & | Reader,
|  | IndexDataConsumer & | DataConsumer,
|  | IndexingOptions | Opts
| ) |  |

Recursively indexes all top-level decls in the module.

Definition at line 196 of file IndexingAction.cpp.

References clang::index::IndexDataConsumer::finish(), clang::ASTReader::getContext(), clang::ASTReader::getModuleFileLevelDecls(), clang::ASTReader::getPreprocessor(), clang::index::IndexingOptions::IndexMacrosInPreprocessor, indexPreprocessorMacros(), clang::index::IndexingContext::indexTopLevelDecl(), clang::index::IndexDataConsumer::initialize(), and clang::index::IndexingContext::setASTContext().

Referenced by createIndexingASTConsumer().

## ◆ indexTopLevelDecls()

void clang::index::indexTopLevelDecls | ( | ASTContext & | Ctx,
|  | Preprocessor & | PP,
|  | ArrayRef< const Decl *> | Decls,
|  | IndexDataConsumer & | DataConsumer,
|  | IndexingOptions | Opts
| ) |  |

Recursively indexes `Decls`.

Definition at line 173 of file IndexingAction.cpp.

References clang::index::IndexDataConsumer::finish(), clang::index::IndexingOptions::IndexMacrosInPreprocessor, indexPreprocessorMacros(), clang::index::IndexingContext::indexTopLevelDecl(), clang::index::IndexDataConsumer::initialize(), and clang::index::IndexingContext::setASTContext().

Referenced by createIndexingASTConsumer().

## ◆ isFunctionLocalSymbol()

bool clang::index::isFunctionLocalSymbol | ( | const Decl * | D | ) |

Definition at line 53 of file IndexSymbol.cpp.

References clang::ExternalLinkage, clang::Decl::getParentFunctionOrMethod(), clang::InternalLinkage, clang::ModuleInternalLinkage, clang::ModuleLinkage, clang::NoLinkage, clang::UniqueExternalLinkage, and clang::VisibleNoLinkage.

Referenced by getSymbolInfo(), clang::index::IndexingContext::handleReference(), clang::index::IndexingContext::indexTagDecl(), and shouldReportOccurrenceForSystemDeclOnlyMode().

## ◆ printSymbolName()

bool clang::index::printSymbolName | ( | const Decl * | D,
|  | const LangOptions & | LO,
|  | raw_ostream & | OS
| ) |  |

Returns
  true if no name was printed, false otherwise.

Definition at line 473 of file IndexSymbol.cpp.

References clang::DeclarationName::isEmpty(), clang::DeclarationName::print(), and clang::PrintingPolicy::SuppressTemplateArgsInCXXConstructors.

## ◆ printSymbolProperties()

void clang::index::printSymbolProperties | ( | SymbolPropertySet | Props,
|  | raw_ostream & | OS
| ) |  |

Definition at line 566 of file IndexSymbol.cpp.

References applyForEachSymbolProperty(), Generic, GKInspectable, IBAnnotated, IBOutletCollection, Local, ProtocolInterface, TemplatePartialSpecialization, TemplateSpecialization, and UnitTest.

## ◆ printSymbolRoles()

void clang::index::printSymbolRoles | ( | SymbolRoleSet | Roles,
|  | raw_ostream & | OS
| ) |  |

Definition at line 440 of file IndexSymbol.cpp.

References AddressOf, applyForEachSymbolRole(), Call, Declaration, Definition, Dynamic, Implicit, NameReference, Read, Reference, RelationAccessorOf, RelationBaseOf, RelationCalledBy, RelationChildOf, RelationContainedBy, RelationExtendedBy, RelationIBTypeOf, RelationOverrideOf, RelationReceivedBy, RelationSpecializationOf, Undefinition, and Write.

## Variable Documentation

## ◆ SymbolPropertyBitNum

const unsigned clang::index::SymbolPropertyBitNum = 9
| static

Definition at line 91 of file IndexSymbol.h.

## ◆ SymbolRoleBitNum

const unsigned clang::index::SymbolRoleBitNum = 21
| static

Definition at line 126 of file IndexSymbol.h.