RecursiveASTVisitor: inline a macro that is only used once
authorDmitri Gribenko <gribozavr@gmail.com>
Mon, 29 Jun 2020 15:05:43 +0000 (17:05 +0200)
committerDmitri Gribenko <gribozavr@gmail.com>
Mon, 29 Jun 2020 15:06:30 +0000 (17:06 +0200)
Reviewers: eduucaldas, ymandel

Reviewed By: ymandel

Subscribers: cfe-commits

Tags: #clang

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

clang/include/clang/AST/RecursiveASTVisitor.h

index 9bbd390..3c2f561 100644 (file)
@@ -669,9 +669,6 @@ bool RecursiveASTVisitor<Derived>::TraverseStmt(Stmt *S,
   return true;
 }
 
-#define DISPATCH(NAME, CLASS, VAR)                                             \
-  return getDerived().Traverse##NAME(static_cast<CLASS *>(VAR))
-
 template <typename Derived>
 bool RecursiveASTVisitor<Derived>::TraverseType(QualType T) {
   if (T.isNull())
@@ -681,7 +678,8 @@ bool RecursiveASTVisitor<Derived>::TraverseType(QualType T) {
 #define ABSTRACT_TYPE(CLASS, BASE)
 #define TYPE(CLASS, BASE)                                                      \
   case Type::CLASS:                                                            \
-    DISPATCH(CLASS##Type, CLASS##Type, const_cast<Type *>(T.getTypePtr()));
+    return getDerived().Traverse##CLASS##Type(                                 \
+        static_cast<CLASS##Type *>(const_cast<Type *>(T.getTypePtr())));
 #include "clang/AST/TypeNodes.inc"
   }
 
@@ -731,8 +729,6 @@ bool RecursiveASTVisitor<Derived>::TraverseDecl(Decl *D) {
   return true;
 }
 
-#undef DISPATCH
-
 template <typename Derived>
 bool RecursiveASTVisitor<Derived>::TraverseNestedNameSpecifier(
     NestedNameSpecifier *NNS) {