Skip to content

Commit 247b790

Browse files
Address newer review comments
1 parent c44fcf5 commit 247b790

File tree

2 files changed

+57
-6
lines changed

2 files changed

+57
-6
lines changed

clang-tools-extra/clangd/XRefs.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2355,14 +2355,14 @@ outgoingCalls(const CallHierarchyItem &Item, const SymbolIndex *Index) {
23552355
// Perform the lookup request and combine its results with CallsOut to
23562356
// get complete CallHierarchyOutgoingCall objects.
23572357
Index->lookup(CallsOutLookup, [&](const Symbol &Callee) {
2358-
// Filter references to only keep function calls
2358+
// The containedRefs request should only return symbols which are
2359+
// function-like, i.e. symbols for which references to them can be "calls".
23592360
using SK = index::SymbolKind;
23602361
auto Kind = Callee.SymInfo.Kind;
2361-
bool NotCall = (Kind != SK::Function && Kind != SK::InstanceMethod &&
2362-
Kind != SK::ClassMethod && Kind != SK::StaticMethod &&
2363-
Kind != SK::Constructor && Kind != SK::Destructor &&
2364-
Kind != SK::ConversionFunction);
2365-
assert(!NotCall);
2362+
assert(Kind == SK::Function || Kind == SK::InstanceMethod ||
2363+
Kind == SK::ClassMethod || Kind == SK::StaticMethod ||
2364+
Kind == SK::Constructor || Kind == SK::Destructor ||
2365+
Kind == SK::ConversionFunction);
23662366

23672367
auto It = CallsOut.find(Callee.ID);
23682368
assert(It != CallsOut.end());

clang-tools-extra/clangd/test/type-hierarchy.test

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,57 @@
8989
# CHECK-NEXT: }
9090
# CHECK-NEXT: ]
9191
---
92+
{"jsonrpc":"2.0","id":2,"method":"typeHierarchy/subtypes","params":{"item":{"uri":"test:///main.cpp","data":{"parents":[{"parents":[{"parents":[],"symbolID":"FE546E7B648D69A7"}],"symbolID":"ECDC0C46D75120F4"}],"symbolID":"8A991335E4E67D08"},"name":"Child2","kind":23,"range":{"end":{"character":13,"line":3},"start":{"character":7,"line":3}},"selectionRange":{"end":{"character":13,"line":3},"start":{"character":7,"line":3}}}}}
93+
# CHECK: "id": 2
94+
# CHECK-NEXT: "jsonrpc": "2.0",
95+
# CHECK-NEXT: "result": [
96+
# CHECK-NEXT: {
97+
# CHECK-NEXT: "data": {
98+
# CHECK-NEXT: "parents": [
99+
# CHECK-NEXT: {
100+
# CHECK-NEXT: "parents": [
101+
# CHECK-NEXT: {
102+
# CHECK-NEXT: "parents": [
103+
# CHECK-NEXT: {
104+
# CHECK-NEXT: "parents": [],
105+
# CHECK-NEXT: "symbolID": "FE546E7B648D69A7"
106+
# CHECK-NEXT: }
107+
# CHECK-NEXT: ],
108+
# CHECK-NEXT: "symbolID": "ECDC0C46D75120F4"
109+
# CHECK-NEXT: }
110+
# CHECK-NEXT: ],
111+
# CHECK-NEXT: "symbolID": "8A991335E4E67D08"
112+
# CHECK-NEXT: }
113+
# CHECK-NEXT: ],
114+
# CHECK-NEXT: "symbolID": "A6576FE083F2949A"
115+
# CHECK-NEXT: },
116+
# CHECK-NEXT: "detail": "Child3",
117+
# CHECK-NEXT: "kind": 23,
118+
# CHECK-NEXT: "name": "Child3",
119+
# CHECK-NEXT: "range": {
120+
# CHECK-NEXT: "end": {
121+
# CHECK-NEXT: "character": 13,
122+
# CHECK-NEXT: "line": 3
123+
# CHECK-NEXT: },
124+
# CHECK-NEXT: "start": {
125+
# CHECK-NEXT: "character": 7,
126+
# CHECK-NEXT: "line": 3
127+
# CHECK-NEXT: }
128+
# CHECK-NEXT: },
129+
# CHECK-NEXT: "selectionRange": {
130+
# CHECK-NEXT: "end": {
131+
# CHECK-NEXT: "character": 13,
132+
# CHECK-NEXT: "line": 3
133+
# CHECK-NEXT: },
134+
# CHECK-NEXT: "start": {
135+
# CHECK-NEXT: "character": 7,
136+
# CHECK-NEXT: "line": 3
137+
# CHECK-NEXT: }
138+
# CHECK-NEXT: },
139+
# CHECK-NEXT: "uri": "file://{{.*}}/clangd-test/main.cpp"
140+
# CHECK-NEXT: }
141+
# CHECK-NEXT: ]
142+
---
92143
{"jsonrpc":"2.0","id":3,"method":"shutdown"}
93144
---
94145
{"jsonrpc":"2.0","method":"exit"}

0 commit comments

Comments
 (0)