This revision was automatically updated to reflect the committed changes.
Closed by commit rL312911: [AST] Make RecursiveASTVisitor visit TemplateDecls 
in source order (authored by krobelus).

Repository:
  rL LLVM

https://reviews.llvm.org/D37662

Files:
  cfe/trunk/include/clang/AST/LexicallyOrderedRecursiveASTVisitor.h
  cfe/trunk/include/clang/AST/RecursiveASTVisitor.h


Index: cfe/trunk/include/clang/AST/RecursiveASTVisitor.h
===================================================================
--- cfe/trunk/include/clang/AST/RecursiveASTVisitor.h
+++ cfe/trunk/include/clang/AST/RecursiveASTVisitor.h
@@ -537,7 +537,6 @@
 
   bool dataTraverseNode(Stmt *S, DataRecursionQueue *Queue);
   bool PostVisitStmt(Stmt *S);
-  bool shouldTraverseTemplateArgumentsBeforeDecl() const { return false; }
 };
 
 template <typename Derived>
@@ -1691,13 +1690,8 @@
 // template declarations.
 #define DEF_TRAVERSE_TMPL_DECL(TMPLDECLKIND)                                   
\
   DEF_TRAVERSE_DECL(TMPLDECLKIND##TemplateDecl, {                              
\
-    if (getDerived().shouldTraverseTemplateArgumentsBeforeDecl()) {            
\
-      TRY_TO(TraverseTemplateParameterListHelper(D->getTemplateParameters())); 
\
-      TRY_TO(TraverseDecl(D->getTemplatedDecl()));                             
\
-    } else {                                                                   
\
-      TRY_TO(TraverseDecl(D->getTemplatedDecl()));                             
\
-      TRY_TO(TraverseTemplateParameterListHelper(D->getTemplateParameters())); 
\
-    }                                                                          
\
+    TRY_TO(TraverseTemplateParameterListHelper(D->getTemplateParameters()));   
\
+    TRY_TO(TraverseDecl(D->getTemplatedDecl()));                               
\
                                                                                
\
     /* By default, we do not traverse the instantiations of                    
\
        class templates since they do not appear in the user code. The          
\
Index: cfe/trunk/include/clang/AST/LexicallyOrderedRecursiveASTVisitor.h
===================================================================
--- cfe/trunk/include/clang/AST/LexicallyOrderedRecursiveASTVisitor.h
+++ cfe/trunk/include/clang/AST/LexicallyOrderedRecursiveASTVisitor.h
@@ -111,8 +111,6 @@
     return true;
   }
 
-  bool shouldTraverseTemplateArgumentsBeforeDecl() const { return true; }
-
   Stmt::child_range getStmtChildren(Stmt *S) { return S->children(); }
 
   SmallVector<Stmt *, 8> getStmtChildren(CXXOperatorCallExpr *CE) {


Index: cfe/trunk/include/clang/AST/RecursiveASTVisitor.h
===================================================================
--- cfe/trunk/include/clang/AST/RecursiveASTVisitor.h
+++ cfe/trunk/include/clang/AST/RecursiveASTVisitor.h
@@ -537,7 +537,6 @@
 
   bool dataTraverseNode(Stmt *S, DataRecursionQueue *Queue);
   bool PostVisitStmt(Stmt *S);
-  bool shouldTraverseTemplateArgumentsBeforeDecl() const { return false; }
 };
 
 template <typename Derived>
@@ -1691,13 +1690,8 @@
 // template declarations.
 #define DEF_TRAVERSE_TMPL_DECL(TMPLDECLKIND)                                   \
   DEF_TRAVERSE_DECL(TMPLDECLKIND##TemplateDecl, {                              \
-    if (getDerived().shouldTraverseTemplateArgumentsBeforeDecl()) {            \
-      TRY_TO(TraverseTemplateParameterListHelper(D->getTemplateParameters())); \
-      TRY_TO(TraverseDecl(D->getTemplatedDecl()));                             \
-    } else {                                                                   \
-      TRY_TO(TraverseDecl(D->getTemplatedDecl()));                             \
-      TRY_TO(TraverseTemplateParameterListHelper(D->getTemplateParameters())); \
-    }                                                                          \
+    TRY_TO(TraverseTemplateParameterListHelper(D->getTemplateParameters()));   \
+    TRY_TO(TraverseDecl(D->getTemplatedDecl()));                               \
                                                                                \
     /* By default, we do not traverse the instantiations of                    \
        class templates since they do not appear in the user code. The          \
Index: cfe/trunk/include/clang/AST/LexicallyOrderedRecursiveASTVisitor.h
===================================================================
--- cfe/trunk/include/clang/AST/LexicallyOrderedRecursiveASTVisitor.h
+++ cfe/trunk/include/clang/AST/LexicallyOrderedRecursiveASTVisitor.h
@@ -111,8 +111,6 @@
     return true;
   }
 
-  bool shouldTraverseTemplateArgumentsBeforeDecl() const { return true; }
-
   Stmt::child_range getStmtChildren(Stmt *S) { return S->children(); }
 
   SmallVector<Stmt *, 8> getStmtChildren(CXXOperatorCallExpr *CE) {
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
  • [PATCH] D37662: [AST... Johannes Altmanninger via Phabricator via cfe-commits
    • [PATCH] D37662:... Manuel Klimek via Phabricator via cfe-commits
    • [PATCH] D37662:... Phabricator via Phabricator via cfe-commits

Reply via email to