kadircet added inline comments.
================
Comment at: clang-tools-extra/clangd/XRefs.cpp:140
if (const SelectionTree::Node *N = Selection.commonAncestor()) {
- auto Decls = targetDecl(N->ASTNode, Relations);
+ auto Decls = explicitReferenceTargets(N->ASTNode, Relations);
Result.assign(Decls.begin(), Decls.end());
----------------
this will result in changes in behavior for other functionality (it is
unfortunate if no tests regressed), for example `findReferences` did work on
`template patterns` rather than `instantiations` now it won't receive pattern
results when triggered on `instantiations`. whether we want that or not is up
for debate, but definitely not part of this patch.
================
Comment at: clang-tools-extra/clangd/unittests/TypeHierarchyTests.cpp:418
+ EXPECT_THAT(*Result,
+ AllOf(WithName("S<0>"), WithKind(SymbolKind::Struct),
Parents()));
}
----------------
nridge wrote:
> kadircet wrote:
> > what about making use of template pattern in case of invalid instantiations?
> >
> > as type hierarchy tries to provide information regarding `bases` and
> > `children`, I think it is more important to show those instead of template
> > instantiation arguments.
> Is there a way to query a `ClassTemplateSpecializationDecl` for whether
> instantiating its base specifier failed?
>
> Or, should we fall back on the template pattern any time `bases()` is empty?
you can check for `CTSD->isInvalidDecl()` and fallback to pattern in such cases.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D71533/new/
https://reviews.llvm.org/D71533
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits