File indexing completed on 2026-05-10 08:36:28
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 #ifndef LLVM_CLANG_AST_ASTMUTATIONLISTENER_H
0013 #define LLVM_CLANG_AST_ASTMUTATIONLISTENER_H
0014
0015 namespace clang {
0016 class Attr;
0017 class ClassTemplateDecl;
0018 class ClassTemplateSpecializationDecl;
0019 class ConstructorUsingShadowDecl;
0020 class CXXDestructorDecl;
0021 class CXXRecordDecl;
0022 class Decl;
0023 class DeclContext;
0024 class Expr;
0025 class FieldDecl;
0026 class FunctionDecl;
0027 class FunctionTemplateDecl;
0028 class Module;
0029 class NamedDecl;
0030 class NamespaceDecl;
0031 class ObjCCategoryDecl;
0032 class ObjCContainerDecl;
0033 class ObjCInterfaceDecl;
0034 class ObjCPropertyDecl;
0035 class ParmVarDecl;
0036 class QualType;
0037 class RecordDecl;
0038 class TagDecl;
0039 class TranslationUnitDecl;
0040 class ValueDecl;
0041 class VarDecl;
0042 class VarTemplateDecl;
0043 class VarTemplateSpecializationDecl;
0044
0045
0046
0047
0048 class ASTMutationListener {
0049 public:
0050 virtual ~ASTMutationListener();
0051
0052
0053 virtual void CompletedTagDefinition(const TagDecl *D) { }
0054
0055
0056 virtual void AddedVisibleDecl(const DeclContext *DC, const Decl *D) {}
0057
0058
0059 virtual void AddedCXXImplicitMember(const CXXRecordDecl *RD, const Decl *D) {}
0060
0061
0062
0063 virtual void AddedCXXTemplateSpecialization(const ClassTemplateDecl *TD,
0064 const ClassTemplateSpecializationDecl *D) {}
0065
0066
0067
0068 virtual void
0069 AddedCXXTemplateSpecialization(const VarTemplateDecl *TD,
0070 const VarTemplateSpecializationDecl *D) {}
0071
0072
0073
0074 virtual void AddedCXXTemplateSpecialization(const FunctionTemplateDecl *TD,
0075 const FunctionDecl *D) {}
0076
0077
0078
0079 virtual void ResolvedExceptionSpec(const FunctionDecl *FD) {}
0080
0081
0082 virtual void DeducedReturnType(const FunctionDecl *FD, QualType ReturnType);
0083
0084
0085 virtual void ResolvedOperatorDelete(const CXXDestructorDecl *DD,
0086 const FunctionDecl *Delete,
0087 Expr *ThisArg) {}
0088
0089
0090 virtual void CompletedImplicitDefinition(const FunctionDecl *D) {}
0091
0092
0093
0094
0095 virtual void InstantiationRequested(const ValueDecl *D) {}
0096
0097
0098 virtual void VariableDefinitionInstantiated(const VarDecl *D) {}
0099
0100
0101 virtual void FunctionDefinitionInstantiated(const FunctionDecl *D) {}
0102
0103
0104 virtual void DefaultArgumentInstantiated(const ParmVarDecl *D) {}
0105
0106
0107 virtual void DefaultMemberInitializerInstantiated(const FieldDecl *D) {}
0108
0109
0110 virtual void AddedObjCCategoryToInterface(const ObjCCategoryDecl *CatD,
0111 const ObjCInterfaceDecl *IFD) {}
0112
0113
0114
0115
0116 virtual void DeclarationMarkedUsed(const Decl *D) {}
0117
0118
0119
0120
0121
0122 virtual void DeclarationMarkedOpenMPThreadPrivate(const Decl *D) {}
0123
0124
0125
0126
0127
0128
0129 virtual void DeclarationMarkedOpenMPDeclareTarget(const Decl *D,
0130 const Attr *Attr) {}
0131
0132
0133
0134
0135 virtual void DeclarationMarkedOpenMPAllocate(const Decl *D, const Attr *A) {}
0136
0137
0138
0139
0140
0141
0142 virtual void RedefinedHiddenDefinition(const NamedDecl *D, Module *M) {}
0143
0144
0145
0146
0147
0148
0149 virtual void AddedAttributeToRecord(const Attr *Attr,
0150 const RecordDecl *Record) {}
0151
0152
0153 virtual void EnteringModulePurview() {}
0154
0155
0156
0157
0158
0159
0160 virtual void AddedManglingNumber(const Decl *D, unsigned Number) {}
0161
0162
0163
0164
0165
0166
0167 virtual void AddedStaticLocalNumbers(const Decl *D, unsigned Number) {}
0168
0169
0170
0171
0172
0173
0174 virtual void AddedAnonymousNamespace(const TranslationUnitDecl *TU,
0175 NamespaceDecl *AnonNamespace) {}
0176
0177
0178
0179 };
0180
0181 }
0182
0183 #endif