16 #ifndef LLVM_CLANG_TOOLING_REFACTOR_RECURSIVE_SYMBOL_VISITOR_H 17 #define LLVM_CLANG_TOOLING_REFACTOR_RECURSIVE_SYMBOL_VISITOR_H 35 : SM(SM), LangOpts(LangOpts) {}
45 return isa<CXXConversionDecl>(D) ?
true : visit(D, D->
getLocation());
49 for (
const auto *Initializer : CD->
inits()) {
51 if (!Initializer->isWritten())
53 if (
const FieldDecl *FD = Initializer->getMember()) {
54 if (!visit(FD, Initializer->getSourceLocation(),
91 if (
const auto *TemplateTypeParm =
92 dyn_cast<TemplateTypeParmType>(Loc.
getType())) {
93 if (!visit(TemplateTypeParm->getDecl(), TypeBeginLoc, TypeEndLoc))
96 if (
const auto *TemplateSpecType =
97 dyn_cast<TemplateSpecializationType>(Loc.
getType())) {
98 if (!visit(TemplateSpecType->getTemplateName().getAsTemplateDecl(),
99 TypeBeginLoc, TypeEndLoc))
126 return visit(ND, Loc,
134 #endif // LLVM_CLANG_TOOLING_REFACTOR_RECURSIVE_SYMBOL_VISITOR_H NamedDecl * getFoundDecl()
Get the NamedDecl through which this reference occurred.
SourceLocation getLocWithOffset(int Offset) const
Return a source location with the specified offset from this SourceLocation.
NamedDecl * getDecl() const
Represent a C++ namespace.
Represents a C++ constructor within a class.
SourceLocation getLocalBeginLoc() const
Retrieve the location of the beginning of this component of the nested-name-specifier.
Base wrapper for a particular "section" of type source info.
FieldDecl * getField() const
For a field offsetof node, returns the field.
A C++ nested-name-specifier augmented with source location information.
Represents a member of a struct/union/class.
Keeps track of the various options that can be enabled, which controls the dialect of C or C++ that i...
SourceLocation getLocalEndLoc() const
Retrieve the location of the end of this component of the nested-name-specifier.
Helper class for OffsetOfExpr.
A class that does preorder or postorder depth-first traversal on the entire Clang AST and visits each...
CXXRecordDecl * getAsCXXRecordDecl() const
Retrieves the CXXRecordDecl that this type refers to, either because the type is a RecordType or beca...
SourceLocation getLocation() const
SourceLocation getBeginLoc() const
Get the begin source location.
NamespaceDecl * getAsNamespace() const
Retrieve the namespace stored in this nested name specifier.
DeclAccessPair getFoundDecl() const
Retrieves the declaration found by lookup.
Expr - This represents one expression.
static SourceLocation getLocForEndOfToken(SourceLocation Loc, unsigned Offset, const SourceManager &SM, const LangOptions &LangOpts)
Computes the source location just past the end of the token at this source location.
Kind getKind() const
Determine what kind of offsetof node this is.
SourceLocation getMemberLoc() const
getMemberLoc - Return the location of the "member", in X->F, it is the location of 'F'...
const OffsetOfNode & getComponent(unsigned Idx) const
Encodes a location in the source.
std::string getNameAsString() const
Get a human-readable name for the declaration, even if it is one of the special kinds of names (C++ c...
bool TraverseNestedNameSpecifierLoc(NestedNameSpecifierLoc NNS)
Recursively visit a C++ nested-name-specifier with location information.
Dataflow Directional Tag Classes.
NestedNameSpecifier * getNestedNameSpecifier() const
Retrieve the nested-name-specifier to which this instance refers.
QualType getType() const
Get the type for which this source info wrapper provides information.
MemberExpr - [C99 6.5.2.3] Structure and Union Members.
unsigned getNumComponents() const
A reference to a declared variable, function, enum, etc.
A trivial tuple used to represent a source range.
This represents a decl that may have a name.
OffsetOfExpr - [C99 7.17] - This represents an expression of the form offsetof(record-type, member-designator).
SourceLocation getLocEnd() const LLVM_READONLY
This class handles loading and caching of source files into memory.
SourceLocation getLocation() const