[clang][NFC] Generate the {Type,ArrayType,UnaryExprOrType,Expression}Traits...
authorBruno Ricci <riccibrun@gmail.com>
Thu, 11 Jun 2020 13:08:27 +0000 (14:08 +0100)
committerBruno Ricci <riccibrun@gmail.com>
Thu, 11 Jun 2020 13:35:52 +0000 (14:35 +0100)
commit78e636b3f2f0b0487130b31fade4f95ab179a18c
treecfa5ceb2991f62b58cf73303f3cb455793d5e08c
parentf45c65aa415a1b55f9397a8c3e139675843c3002
[clang][NFC] Generate the {Type,ArrayType,UnaryExprOrType,Expression}Traits...

...enumerations from TokenKinds.def and use the new macros from TokenKinds.def
to remove the hard-coded lists of traits.

All the information needed to generate these enumerations is already present
in TokenKinds.def. The motivation here is to be able to dump the trait spelling
without hard-coding the list in yet another place.

Note that this change the order of the enumerators in the enumerations (except
that in the TypeTrait enumeration all unary type traits are before all binary
type traits, and all binary type traits are before all n-ary type traits).

Apart from the aforementioned ordering which is relied upon, after this patch
no code in clang or in the various clang tools depend on the specific ordering
of the enumerators.

No functional changes intended.

Differential Revision: https://reviews.llvm.org/D81455

Reviewed By: aaron.ballman
13 files changed:
clang/include/clang/Basic/DiagnosticSemaKinds.td
clang/include/clang/Basic/ExpressionTraits.h
clang/include/clang/Basic/TokenKinds.def
clang/include/clang/Basic/TypeTraits.h
clang/lib/AST/JSONNodeDumper.cpp
clang/lib/AST/StmtPrinter.cpp
clang/lib/AST/TextNodeDumper.cpp
clang/lib/ASTMatchers/Dynamic/Marshallers.cpp
clang/lib/ASTMatchers/Dynamic/Marshallers.h
clang/lib/Basic/CMakeLists.txt
clang/lib/Basic/ExpressionTraits.cpp [new file with mode: 0644]
clang/lib/Basic/TypeTraits.cpp [new file with mode: 0644]
clang/lib/Sema/SemaExpr.cpp