johannes added a comment.

In https://reviews.llvm.org/D34329#784090, @arphaman wrote:

> Generally we shouldn't have untested code in trunk, so I think that we need 
> to find a way to test this before committing. We can start off by testing the 
> output of the diff tool. Since there will be a lot of changes in the future, 
> you don't have to have everything covered now, so I think that even a couple 
> of tests be enough.


Thanks for your feedback! I think I have adressed all issues, except for the 
tests.

For the tests to run properly, I tried to create a local compile_commands.json, 
because ClangTool refuses to build an AST when the command for a source not 
found in the compilation database. However, it seems like relative paths do not 
work for the "directory" property.
So maybe this can be added? Other options are: 1. patching the compilation 
database before running the test, so that it has the absolute path or 2. adding 
an option to my tool to not load a compilation database. WDYT?



================
Comment at: lib/Tooling/ASTDiff/ASTDiff.cpp:31
+
+static bool isRelevantNode(Decl *D) { return D != nullptr; }
+static bool isRelevantNode(Stmt *S) { return S != nullptr; }
----------------
arphaman wrote:
> I don't see the point in these functions. Are you going to add some more 
> logic to them?
> 
> I'd suggest removing them and using early return in the traversal functions 
> instead, e.g:
> 
> ```
>   bool TraverseDecl(Decl *D) {
>     if (!D)
>       return true;
>     ++Count;
>     return RecursiveASTVisitor<NodeCountVisitor>::TraverseDecl(D);
>   }
> ```
This is now done in `discardNode`, which also filters nodes from system headers.


https://reviews.llvm.org/D34329



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

Reply via email to