================
@@ -2292,9 +2289,26 @@ incomingCalls(const CallHierarchyItem &Item, const
SymbolIndex *Index) {
Index->lookup(ContainerLookup, [&](const Symbol &Caller) {
auto It = CallsIn.find(Caller.ID);
assert(It != CallsIn.end());
- if (auto CHI = symbolToCallHierarchyItem(Caller, Item.uri.file()))
+ if (auto CHI = symbolToCallHierarchyItem(Caller, Item.uri.file())) {
+ SymbolLocation CallerLoc =
+ Caller.Definition ? Caller.Definition : Caller.CanonicalDeclaration;
+ std::vector<Range> FromRanges;
+ for (const SymbolLocation &L : It->second) {
+ if (StringRef{L.FileURI} != StringRef{CallerLoc.FileURI}) {
+ elog("incomingCalls: call location not in same file as caller, this "
----------------
hokein wrote:
I don't have a good solution, it looks like the LSP protocol assumes that the
ranges are in the same file as from.uri. I think it is worth to reporting it to
LSP.
It is not a common case though, I think we could just drop these ranges in the
current implementation.
https://github.com/llvm/llvm-project/pull/111616
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits