1 //===-- TaggedASTType.h -----------------------------------------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 #ifndef liblldb_TaggedASTType_h_
11 #define liblldb_TaggedASTType_h_
13 #include "lldb/Symbol/ClangASTType.h"
15 namespace lldb_private
18 // For cases in which there are multiple classes of types that are not
19 // interchangeable, to allow static type checking.
20 template <unsigned int C> class TaggedASTType : public ClangASTType
23 TaggedASTType (const ClangASTType &clang_type) :
24 ClangASTType(clang_type)
28 TaggedASTType (lldb::clang_type_t type, clang::ASTContext *ast_context) :
29 ClangASTType(ast_context, type)
33 TaggedASTType (const TaggedASTType<C> &tw) :
48 TaggedASTType<C> &operator= (const TaggedASTType<C> &tw)
50 ClangASTType::operator= (tw);
55 // Commonly-used tagged types, so code using them is interoperable
56 typedef TaggedASTType<0> TypeFromParser;
57 typedef TaggedASTType<1> TypeFromUser;