@@ -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}
0 commit comments