14 #ifndef LLVM_CLANG_AST_TYPEVISITOR_H
15 #define LLVM_CLANG_AST_TYPEVISITOR_H
21 #define DISPATCH(CLASS) \
22 return static_cast<ImplClass*>(this)-> \
23 Visit##CLASS(static_cast<const CLASS*>(T))
64 template<
typename ImplClass,
typename RetTy=
void>
72 #define ABSTRACT_TYPE(CLASS, PARENT)
73 #define TYPE(CLASS, PARENT) case Type::CLASS: DISPATCH(CLASS##Type);
74 #include "clang/AST/TypeNodes.def"
76 llvm_unreachable(
"Unknown type class!");
81 #define TYPE(CLASS, PARENT) RetTy Visit##CLASS##Type(const CLASS##Type *T) { \
84 #include "clang/AST/TypeNodes.def"
RetTy VisitType(const Type *)
Method called if ImpClass doesn't provide specific handler for some type class.
C Language Family Type Representation.
The base class of the type hierarchy.
RetTy Visit(const Type *T)
Performs the operation associated with this visitor object.
TypeClass getTypeClass() const