//===--- ASTTypeTraits.h ----------------------------------------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // // Provides a dynamic type identifier and a dynamically typed node container // that can be used to store an AST base node at runtime in the same storage in // a type safe way. // //===----------------------------------------------------------------------===// #ifndef LLVM_CLANG_AST_ASTTYPETRAITS_H #define LLVM_CLANG_AST_ASTTYPETRAITS_H #include "clang/AST/ASTFwd.h" #include "clang/AST/DeclCXX.h" #include "clang/AST/LambdaCapture.h" #include "clang/AST/NestedNameSpecifier.h" #include "clang/AST/TemplateBase.h" #include "clang/AST/TypeLoc.h" #include "clang/Basic/LLVM.h" #include "llvm/ADT/DenseMapInfo.h" #include "llvm/Support/AlignOf.h" namespace llvm { class raw_ostream; } // namespace llvm clang // end namespace clang namespace llvm { template <> struct DenseMapInfo<clang::ASTNodeKind> : clang::ASTNodeKind::DenseMapInfo { … }; template <> struct DenseMapInfo<clang::DynTypedNode> : clang::DynTypedNode::DenseMapInfo { … }; } // end namespace llvm #endif