clang: include/clang/Tooling/Refactoring/RecursiveSymbolVisitor.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15#ifndef LLVM_CLANG_TOOLING_REFACTORING_RECURSIVESYMBOLVISITOR_H

16#define LLVM_CLANG_TOOLING_REFACTORING_RECURSIVESYMBOLVISITOR_H

17

21

24

25

26

27template

31

32public:

34 : SM(SM), LangOpts(LangOpts) {}

35

40

41

42

46

49

51 continue;

53 if (!visit(FD, Initializer->getSourceLocation(),

55 0, SM, LangOpts)))

56 return false;

57 }

58 }

59 return true;

60 }

61

62

63

65 return visit(Expr->getFoundDecl(), Expr->getLocation());

66 }

67

69 return visit(Expr->getFoundDecl().getDecl(), Expr->getMemberLoc());

70 }

71

73 for (unsigned I = 0, E = S->getNumComponents(); I != E; ++I) {

77 return false;

78 }

79

80 }

81 return true;

82 }

83

84

85

90 if (const auto *TemplateTypeParm =

91 dyn_cast(Loc.getType())) {

92 if (!visit(TemplateTypeParm->getDecl(), TypeBeginLoc, TypeEndLoc))

93 return false;

94 }

95 if (const auto *TemplateSpecType =

96 dyn_cast(Loc.getType())) {

97 if (!visit(TemplateSpecType->getTemplateName().getAsTemplateDecl(),

98 TypeBeginLoc, TypeEndLoc))

99 return false;

100 }

102 if (TP->getTypeClass() == clang::Type::Record)

103 return visit(TP->getAsCXXRecordDecl(), TypeBeginLoc, TypeEndLoc);

104 }

105 return true;

106 }

107

113

115

116

119 const auto *ND = dyn_cast(

120 Qualifier.getAsNamespaceAndPrefix().Namespace);

123 return false;

124 }

126 }

127

130 if (D.isFieldDesignator()) {

132 if (!visit(Decl, D.getFieldLoc(), D.getFieldLoc()))

133 return false;

134 }

135 }

136 }

137 return true;

138 }

139

140private:

143

148 }

151 }

152};

153

154}

155}

156

157#endif

Represents a C++ constructor within a class.

A reference to a declared variable, function, enum, etc.

Decl - This represents one declaration (or definition), e.g.

SourceLocation getLocation() const

Represents a single C99 designator.

Represents a C99 designated initializer expression.

MutableArrayRef< Designator > designators()

This represents one expression.

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...

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.

MemberExpr - [C99 6.5.2.3] Structure and Union Members.

This represents a decl that may have a name.

A C++ nested-name-specifier augmented with source location information.

NestedNameSpecifier getNestedNameSpecifier() const

Retrieve the nested-name-specifier to which this instance refers.

SourceLocation getLocalEndLoc() const

Retrieve the location of the end of this component of the nested-name-specifier.

SourceLocation getLocalBeginLoc() const

Retrieve the location of the beginning of this component of the nested-name-specifier.

Represents a C++ nested name specifier, such as "\::std::vector::".

@ Namespace

A namespace-like entity, stored as a NamespaceBaseDecl*.

OffsetOfExpr - [C99 7.17] - This represents an expression of the form offsetof(record-type,...

const OffsetOfNode & getComponent(unsigned Idx) const

unsigned getNumComponents() const

Helper class for OffsetOfExpr.

FieldDecl * getField() const

For a field offsetof node, returns the field.

Kind getKind() const

Determine what kind of offsetof node this is.

SourceLocation getEndLoc() const LLVM_READONLY

A class that does preorder or postorder depth-first traversal on the entire Clang AST and visits each...

bool TraverseNestedNameSpecifierLoc(NestedNameSpecifierLoc NNS)

Encodes a location in the source.

This class handles loading and caching of source files into memory.

A trivial tuple used to represent a source range.

Base wrapper for a particular "section" of type source info.

QualType getType() const

Get the type for which this source info wrapper provides information.

SourceLocation getBeginLoc() const

Get the begin source location.

const Type * getTypePtr() const

The base class of the type hierarchy.

Wrapper for source info for typedefs.

The JSON file list parser is used to communicate input to InstallAPI.

bool isa(CodeGen::Address addr)

const FunctionProtoType * T