HighCommander4 wrote:

> Now about the implementation, I did it this way thinking it is the least 
> invasive form of doing so, but I just realized it might also be a neat 
> alternative to instead inherit from `IndexASTConsumer` (so make it not 
> `final` and expose it through the header), then I do not need to move the 
> `IndexingContext.h` to another folder and also can just overwrite the few 
> differences while the rest can stay the same. Unless there is a good reason 
> why we do not want another level of inheritance.

Good question.

It looks like we're going to have to touch the libIndex API one way or another. 
The current implementation would make `IndexingContext` public. Your proposed 
alternative would make `IndexASTConsumer` public and non-`final`. Both feel 
like they're increasing the API surface with implementation details.

Since we're considering approaches that involve touching the libIndex API, what 
about one that minimizes the new API surface while leaving open the possibility 
of other libIndex users making use of our new capability: add a new field to 
`IndexingOptions`, something like `DeferIndexingToEndOfTranslationUnit`, and 
have `IndexASTConsumer` itself check for and respect that flag?

https://github.com/llvm/llvm-project/pull/169742
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to