ioeric added a comment.

>> - I think the implementation of the index output logic (e.g. 
>> `IndexUnitWriter` and bit format file) can be abstracted away (and split 
>> into separate patches) so that you can unit-test the action with a 
>> custom/mock unit writer; this would also make the action reusable with 
>> (potentially) other storage formats.
> 
> The added IndexRecordAction and existing IndexAction use the same 
> functionality from libIndex to collect the indexing data, so I'm not sure 
> mocking the unit writer to unit test IndexRecordAction would add very much 
> value – writing the index data out is the new behavior. The existing tests 
> for IndexAction (under test/Index/Core) are already covering the correctness 
> of the majority of the collected indexing info and the tests coming in the 
> follow-up patch (seen in the original version of this patch) test it's still 
> correct after the write/read round trip.

Thanks for the clarification! I still think it's useful to decouple the 
IndexAction from the bit format file so that it could be reusable elsewhere. 
For example, I can see the index action be useful to clangd for building 
in-memory index.

I also tried applying your original patch locally but couldn't get it to work 
mostly due to portability issues (e.g. `blocks` and `if (APPLE)` in make 
files). AFAIK, many folks compile clang with GCC and/or without APPLE, so it's 
important that you get the portability right from the very beginning. Thanks!

Index-while-build is awesome! I'm looking forward to your patches!


https://reviews.llvm.org/D39050



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

Reply via email to