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