14 #include "llvm/Support/ErrorHandling.h"
17 using namespace clang;
20 #define TYPE_TRAIT_1(Spelling, Name, Key) #Name,
21 #include "clang/Basic/TokenKinds.def"
22 #define TYPE_TRAIT_2(Spelling, Name, Key) #Name,
23 #include "clang/Basic/TokenKinds.def"
24 #define TYPE_TRAIT_N(Spelling, Name, Key) #Name,
25 #include "clang/Basic/TokenKinds.def"
29 #define TYPE_TRAIT_1(Spelling, Name, Key) #Spelling,
30 #include "clang/Basic/TokenKinds.def"
31 #define TYPE_TRAIT_2(Spelling, Name, Key) #Spelling,
32 #include "clang/Basic/TokenKinds.def"
33 #define TYPE_TRAIT_N(Spelling, Name, Key) #Spelling,
34 #include "clang/Basic/TokenKinds.def"
38 #define ARRAY_TYPE_TRAIT(Spelling, Name, Key) #Name,
39 #include "clang/Basic/TokenKinds.def"
43 #define ARRAY_TYPE_TRAIT(Spelling, Name, Key) #Spelling,
44 #include "clang/Basic/TokenKinds.def"
48 #define UNARY_EXPR_OR_TYPE_TRAIT(Spelling, Name, Key) #Name,
49 #define CXX11_UNARY_EXPR_OR_TYPE_TRAIT(Spelling, Name, Key) #Name,
50 #include "clang/Basic/TokenKinds.def"
54 #define UNARY_EXPR_OR_TYPE_TRAIT(Spelling, Name, Key) #Spelling,
55 #define CXX11_UNARY_EXPR_OR_TYPE_TRAIT(Spelling, Name, Key) #Spelling,
56 #include "clang/Basic/TokenKinds.def"
60 #define TYPE_TRAIT_1(Spelling, Name, Key) 1,
61 #include "clang/Basic/TokenKinds.def"
62 #define TYPE_TRAIT_2(Spelling, Name, Key) 2,
63 #include "clang/Basic/TokenKinds.def"
64 #define TYPE_TRAIT_N(Spelling, Name, Key) 0,
65 #include "clang/Basic/TokenKinds.def"
69 assert(
T <=
TT_Last &&
"invalid enum value!");
74 assert(
T <=
ATT_Last &&
"invalid enum value!");
79 assert(
T <=
UETT_Last &&
"invalid enum value!");
84 assert(
T <=
TT_Last &&
"invalid enum value!");
85 if (
T == BTT_IsDeducible) {
92 return "__is_deducible";
98 assert(
T <=
ATT_Last &&
"invalid enum value!");
103 assert(
T <=
UETT_Last &&
"invalid enum value!");
108 assert(
T <=
TT_Last &&
"invalid enum value!");
static constexpr const char * UnaryExprOrTypeTraitSpellings[]
static constexpr const char * TypeTraitNames[]
static constexpr const char * ArrayTypeTraitNames[]
static constexpr const char * ArrayTypeTraitSpellings[]
static constexpr const unsigned TypeTraitArities[]
static constexpr const char * TypeTraitSpellings[]
static constexpr const char * UnaryExprOrTypeTraitNames[]
Defines enumerations for the type traits support.
The JSON file list parser is used to communicate input to InstallAPI.
ArrayTypeTrait
Names for the array type traits.
unsigned getTypeTraitArity(TypeTrait T) LLVM_READONLY
Return the arity of the type trait T.
const char * getTraitName(ExpressionTrait T) LLVM_READONLY
Return the internal name of type trait T. Never null.
UnaryExprOrTypeTrait
Names for the "expression or type" traits.
const char * getTraitSpelling(ExpressionTrait T) LLVM_READONLY
Return the spelling of the type trait TT. Never null.
const FunctionProtoType * T
TypeTrait
Names for traits that operate specifically on types.