nridge added a comment. In D58880#1416754 <https://reviews.llvm.org/D58880#1416754>, @kadircet wrote:
> Sorry I didn't notice the mailing thread beforehand, looks like Sam had a > good point regarding performing operations on types rather than > symbols(http://lists.llvm.org/pipermail/clangd-dev/2019-January/000241.html). > Does current implementation take this into account by either pointing at > template specializations and/or base template declarations? I thought about this, and I believe that having the relationship be between symbols is sufficient. The main utility in a type hierarchy view is to allow the user to navigate to base/derived classes. If a base or derived class is an //implicit// specialization, the desired navigation is to the corresponding template definition; if it's an //explicit// specialization, the desired navigation is to the explicit specialization's definition. A class template will obviously have its own symbol, so that part's fine. Explicit specializations are not currently stored in the index, but I think it would make sense for them to be, for other reasons as well (e.g. a user may want to navigate to an explicit specialization definition via `"workspace/symbol"`), in which case they too will get their own symbols. So, in either case, the desired type hierarchy item can be obtained from a symbol. The updated patch has tests covering these scenarios, specifically `Subtypes.ClassTemplate` and `Subtypes.DependentBase`. Two additional tests, `Subtypes.TemplateSpec1` and `Subtypes.TemplateSpec2` are disabled until we start storing explicit specializations in the index. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D58880/new/ https://reviews.llvm.org/D58880 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits