Skip to content

Commit 6c96c08

Browse files
committed
Ignore java/lang/Object relationships
1 parent ebb13a1 commit 6c96c08

File tree

2 files changed

+20
-11
lines changed

2 files changed

+20
-11
lines changed

lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/LsifSemanticdb.java

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -118,9 +118,7 @@ private void processTypedDocument(Path path, PackageTable packages) {
118118
LsifTyped.SymbolInformation.newBuilder().setSymbol(typedSymbol(info.getSymbol(), pkg));
119119

120120
for (String overriddenSymbol : info.getOverriddenSymbolsList()) {
121-
if (overriddenSymbol.equals("java/lang/Object#")) {
122-
// Skip java/lang/Object# since it's the parent of all classes
123-
// making it noisy for "find implementations" results.
121+
if (isIgnoredOverriddenSymbol(overriddenSymbol)) {
124122
continue;
125123
}
126124
Package overriddenSymbolPkg =
@@ -280,16 +278,22 @@ private Integer processDocumentUnsafe(
280278

281279
// Overrides
282280
if (symbolInformation.getOverriddenSymbolsCount() > 0) {
283-
int[] overriddenReferenceResultIds = new int[symbolInformation.getOverriddenSymbolsCount()];
281+
List<Integer> overriddenReferenceResultIds =
282+
new ArrayList<>(symbolInformation.getOverriddenSymbolsCount());
284283
for (int i = 0; i < symbolInformation.getOverriddenSymbolsCount(); i++) {
285284
String overriddenSymbol = symbolInformation.getOverriddenSymbols(i);
285+
if (isIgnoredOverriddenSymbol(overriddenSymbol)) {
286+
continue;
287+
}
286288
ResultIds overriddenIds = results.getOrInsertResultSet(overriddenSymbol);
287-
overriddenReferenceResultIds[i] = overriddenIds.referenceResult;
289+
overriddenReferenceResultIds.add(overriddenIds.referenceResult);
290+
writer.emitReferenceResultsItemEdge(
291+
overriddenIds.referenceResult, Collections.singletonList(rangeId), doc.id);
292+
}
293+
if (overriddenReferenceResultIds.size() > 0) {
288294
writer.emitReferenceResultsItemEdge(
289-
overriddenIds.referenceResult, new int[] {rangeId}, doc.id);
295+
ids.referenceResult, overriddenReferenceResultIds, doc.id);
290296
}
291-
writer.emitReferenceResultsItemEdge(
292-
ids.referenceResult, overriddenReferenceResultIds, doc.id);
293297
}
294298
}
295299
writer.emitContains(doc.id, new ArrayList<>(rangeIds));
@@ -324,4 +328,10 @@ private Semanticdb.TextDocuments textDocumentsParseFrom(Path semanticdbPath) thr
324328
return Semanticdb.TextDocuments.parseFrom(bytes);
325329
}
326330
}
331+
332+
private boolean isIgnoredOverriddenSymbol(String symbol) {
333+
// Skip java/lang/Object# since it's the parent of all classes
334+
// making it noisy for "find implementations" results.
335+
return symbol.equals("java/lang/Object#");
336+
}
327337
}

lsif-semanticdb/src/main/java/com/sourcegraph/lsif_semanticdb/LsifWriter.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -146,12 +146,11 @@ public void emitItem(int outV, int inV, int document) {
146146
emitObject(lsifEdge("item").setOutV(outV).addInVs(inV).setDocument(document));
147147
}
148148

149-
public void emitReferenceResultsItemEdge(int outV, int[] inVs, int document) {
150-
List<Integer> ints = Arrays.stream(inVs).boxed().collect(Collectors.toList());
149+
public void emitReferenceResultsItemEdge(int outV, Iterable<Integer> inVs, int document) {
151150
emitObject(
152151
lsifEdge("item")
153152
.setOutV(outV)
154-
.addAllInVs(ints)
153+
.addAllInVs(inVs)
155154
.setDocument(document)
156155
.setProperty("referenceResults"));
157156
}

0 commit comments

Comments
 (0)