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
The JSON file list parser is used to communicate input to InstallAPI.
const FunctionProtoType * T