aaron.ballman added a comment.

In D61835#1505280 <https://reviews.llvm.org/D61835#1505280>, @steveire wrote:

> In D61835#1505228 <https://reviews.llvm.org/D61835#1505228>, @aaron.ballman 
> wrote:
>
> > In D61835#1505202 <https://reviews.llvm.org/D61835#1505202>, @steveire 
> > wrote:
> >
> > > 3. Anyone who wants traversal in the same way that dumping is done and 
> > > who needs to call API on the instance which is provided by 
> > > ASTNodeTraverser (which ASTDumper inherits) needs to use ASTDumper. For 
> > > example my UI. See my EuroLLVM talk for more: 
> > > https://steveire.wordpress.com/2019/04/30/the-future-of-ast-matching-refactoring-tools-eurollvm-and-accu/
> >
> >
> > Do they? Why is the `ASTNodeTraverser` insufficient?
>
>
> It doesn't have the same behavior as `ASTDumper`, because `ASTDumper` 
> "overrides" some `Visit` metthods.


I'm aware that they're different, but I may not have been sufficiently clear. 
I'm saying that the only public APIs I think a user should be calling are 
inherited from `ASTNodeTraverser` and not `ASTDumper`, so it is not required to 
expose `ASTDumper` directly, only a way to get an `ASTNodeTraverser` 
reference/pointer to an `ASTDumper` instance so that you get the correct 
virtual dispatch. e.g., `ASTNodeTraverser 
*getSomethingThatActsLikeAnASTDumper() { return new ASTDumper; }`


Repository:
  rC Clang

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D61835/new/

https://reviews.llvm.org/D61835



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to