From: Chandler Carruth Date: Thu, 10 Jun 2010 23:27:51 +0000 (+0000) Subject: Tweak a comment on the visitor to clarify one order of visit issue. Patch from X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b5c202f9e4f6d0f230d5cb8848779259ebf95b7f;p=clang Tweak a comment on the visitor to clarify one order of visit issue. Patch from Zhanyong Wan. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105795 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/clang/AST/RecursiveASTVisitor.h b/include/clang/AST/RecursiveASTVisitor.h index b6f7342cea..5a8a3f7c69 100644 --- a/include/clang/AST/RecursiveASTVisitor.h +++ b/include/clang/AST/RecursiveASTVisitor.h @@ -70,6 +70,12 @@ namespace clang { /// tier (e.g. other Traverse*) or one tier lower (e.g. WalkUpFrom*). /// It may not call methods from a higher tier. /// +/// Note that since WalkUpFromFoo() calls WalkUpFromBar() (where Bar +/// is Foo's super class) before calling VisitFoo(), the result is +/// that the Visit*() methods for a given node are called in the +/// top-down order (e.g. for a node of type NamedDecl, the order will +/// be VisitDecl(), VisitNamedDecl(), and then VisitNamespaceDecl()). +/// /// This scheme guarantees that all Visit*() calls for the same AST /// node are grouped together. In other words, Visit*() methods for /// different nodes are never interleaved.