<div dir="ltr">Hi,<div><br></div><div>I'm writing a clang libtool using RecursiveASTVisitor, and I've noticed that I can define Traverse* for some types, but not others. For instance, I can define TraverseArraySubscriptExpr() and TraverseMemberExpr(), but not TraverseExplicitCastExpr(). So I can write</div><div><br></div><div>bool MyVisitor::TraverseExplicitCastExpr(ExplicitCastExpr *ECE) {</div><div>  // do some stuff</div><div>  return RecursiveASTVisitor<MyVisitor>::TraverseExplicitCastExpr(ECE);</div><div>}</div><div><br></div><div>but then the compiler complains that there is no TraverseExplicitCastExpr in the base class RecursiveASTVisitor<MyVisitor>. But if I do the same for an ArraySubscriptExpr, it compiles just fine.</div><div><br></div><div>Any insight into this matter would be much appreciated.</div><div><br></div><div>Thanks,</div><div><br></div><div>Scott Constable</div></div>